Python爬虫从基础到精通(一)爬虫简介

目录

前言:

一、爬虫的简单定义 

二、为什么需要爬虫

三、怎么做爬虫


点击领取:最新最全的计算机专业考研资料和程序员技术类文章免费送啦,进来看看吧。让你的学习、工作省时省力省钱。

前言:

本讲义为高级爬虫课程的一部分。通过对各种爬虫的主流技术进行研究得出了关于目前网络爬虫所遇到的问题与解决方案进行了较为详细的阐述。在实例中,选用了对国内主流的豆瓣,猫眼电影,今日头条等进行实际的数据抓取,但是随着时间流逝,目标网站的更新,可能有部分代码无法正常运行,望周知。

一、爬虫的简单定义 
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

简单来说:使用事先写好的程序去抓取网络上所需要的数据,这样的程序就叫网络爬虫

 爬虫的分类
网络爬虫可以分为通用网络爬虫(如搜索引擎的爬虫,根据几个URL的种子不断的去抓取数据)和聚焦网络爬虫(有选择性的抓取预先定义好的主题和相关页面的网络爬虫)。

A.通用网络爬虫:  

搜索引擎中第一步就是爬虫。但是搜索引擎中的爬虫是一种广泛获取各种网页的信息的程序;除了HTML文件外,搜索引擎通常还会抓取和索引文字为基础的多种文件类型,如TXT,WORD,PDF等; 但是对于图片,视频,等非文字的内容则一般不会处理;但是对于脚本和一些网页中的程序是不会处理的;

Python爬虫从基础到精通(一)爬虫简介_第1张图片

B.聚焦网络爬虫:

针对某一特定领域的数据进行抓取的程序。比如旅游网站,金融网站,招聘网站等等;特定领域的聚集爬虫会使用各种技术去处理我们需要的信息,所以对于网站中动态的一些程序,脚本仍会执行,以保证确定能抓取到网站中的数据;


 

二、为什么需要爬虫



 爬虫的用途

A.解决冷启动问题:对于很多社交类的网站,冷启动是很困难的。对于新注册的用户而言,要留住他们,需要先注入一批假用户,已构造社区的氛围。一般这些假的用户可以通过网络爬虫从微博或其他APP中抓取而来;今日头条等互联网媒体最早也就是使用了爬虫+网页排序的技术,所以它们解决冷启动的方式也是需要爬虫;

Python爬虫从基础到精通(一)爬虫简介_第2张图片

B.搜索引擎的根基:做搜索引擎少不了爬虫程序;

C.建立起知识图谱,帮助建立机器学习的训练集:

Python爬虫从基础到精通(一)爬虫简介_第3张图片

D.可以制作各种商品的比价,趋势分析等:

Python爬虫从基础到精通(一)爬虫简介_第4张图片

E.其他:比如分析淘宝上竞争对手的数据;分析微博的数据传递影响力,政府的舆情分析,分析人与人之间的关系等等;

Python爬虫从基础到精通(一)爬虫简介_第5张图片

总之一句话:在当今的大数据时代,做任何价值分析的前提是数据,而爬虫则是获得这个前提的一个低成本高收益手段;而对同学们而言,另一个重要的价值是解决就业问题。

三、怎么做爬虫

用Python做爬虫非常的简单,在交互式环境中简单的两行代码即可

Python爬虫从基础到精通(一)爬虫简介_第6张图片

做一个爬虫如此简单吗?

当然不是。让我们来看下要做一个爬虫工程师需要哪些知识和技能:

****爬虫工程师的晋级之路,网络爬虫涉及哪些技术

   初级爬虫工程师

  1. Web前端的知识:HTML, CSS, JavaScript, DOM, DHTML, Ajax, jQuery,json等;
  2. 正则表达式,能提取正常一般网页中想要的信息,比如某些特殊的文字,链接信息,知道什么是懒惰,什么是贪婪型的正则;
  3. 会使用re, BeautifulSoup,XPath等获取一些DOM结构中的节点信息;
  4. 知道什么是深度优先,广度优先的抓取算法,及实践中的使用规则;
  5. 能分析简单网站的结构,会使用urllib或requests库进行简单的数据抓取;

  中级爬虫工程师

  1. 了解什么是Hash,会使用简单的MD5,SHA1等算法对数据进行Hash以便存储;
  2. 熟悉HTTP,HTTPS协议的基础知识,了解GET,POST方法,了解HTTP头中的信息,包括返回状态码,编码,user-agent,cookie,session等;
  3. 能设置User-Agent进行数据爬取,设置代理等;
  4. 知道什么是Request,什么是Response,会使用Fiddler, Wireshark等工具抓取及分析简单的网络数据包;对于动态爬虫,要学会分析Ajax请求,模拟制造Post数据包请求,抓取客户端session等信息,对于一些简单的网站,能够通过模拟数据包进行自动登录;
  5. 对于比较难搞定的网站,学会使用phatomjs+selenium抓取一些动态网页信息;
  6. 并发下载,通过并行下载加速数据抓取;多线程的使用;

  高级爬虫工程师

  1. 能使用Tesseract,各种图像处理技术,CNN,百度AI等库进行验证码识别;
  2. 能使用数据挖掘的技术,分类算法等避免死链等;
  3. 会使用常用的数据库进行数据存储,查询,如Mongodb,Redis(大数据量的缓存)等;下载缓存,学习如何通过缓存避免重复下载的问题;Bloom Filter的使用;
  4. 能使用机器学习的技术动态调整爬虫的爬取策略,从而避免被禁IP封号等;
  5. 能使用一些开源框架Scrapy等分布式爬虫,能部署掌控分布式爬虫进行大规模的数据抓取;

你可能感兴趣的:(python,搜索引擎,爬虫,python)