什么是爬虫

  开始爬虫之旅。

认识爬虫

  网络爬虫(又被称为网页蜘蛛,网络机器人,spider),是一种按照一定的规则,自动地抓取互联网信息的程序或者脚本。通俗的讲就是通过程序自动去获取web页面上自己想要的数据。

  主要就是模拟浏览器打开网页,获取网页中我们想要的那部分数据。

  简单的说一下浏览器打开网页的过程:在浏览器中输入地址后,经过DNS服务器找到服务器主机,向服务器发送一个请求,服务器经过解析后发送给用户浏览器结果,包括html,js,css等文件内容,浏览器解析出来最后呈现给用户,最后就是用户看到的浏览器显示部分了。用户看到的浏览器的结果就是由HTML代码构成的,我们爬虫就是为了获取这些内容,通过分析和过滤html代码,从中获取我们想要资源。

  爬虫的基本流程主要分为4步:

  第一步、发起请求:通过HTTP库向目标站点发起请求,也就是发送一个Request,请求可以包含额外的header等信息,等待服务器响应。

  第二步、获取响应内容:如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能是HTML,Json字符串,二进制数据(图片或者视频)等类型。

  第三步、解析内容:得到的内容可能是HTML,可以用正则表达式,页面解析库进行解析,可能是Json,可以直接转换为Json对象解析,可能是二进制数据,可以做保存或者进一步的处理。

  第四步、保存数据:保存形式多样,可以存为文本,也可以保存到数据库,或者保存特定格式的文件。

  在发送请求阶段,请求方式主要有GET/POST两种类型,还有一些其他方式但是不常用。

  请求头包含User-Agent,Host,Cookies等信息,请求体是携带的数据,如提交表单数据时候的表单数据。

  服务器端会根据请求信息给出相应的响应,包括状态码,响应头和响应体,响应体里面就是我们请求的资源内容。

  从理论上来说,我们请求到什么资源就等于爬取什么样的资源,但是由于很多网站中的数据都是通过js,ajax动态加载的,所以直接通过get请求获取的页面和浏览器显示的不同。后面的随着学习的深入我们会有方法解决js渲染等问题。

  解析爬下来的数据的方式:

  1. 直接处理;
  2. Json解析;
  3. 正则表达式处理;
  4. BeautifulSoup解析处理;
  5. PyQuery解析处理;
  6. XPath解析处理。

  存储数据的方式:

  1. 文本:纯文本,Json,Xml等;
  2. 关系型数据库:如mysql,oracle,sql server等结构化数据库;
  3. 非关系型数据库:MongoDB,Redis等key-value形式存储。

  根据使用场景,网络爬虫可分为 通用爬虫 和 聚焦爬虫 两种。

  通用网络爬虫 是 捜索引擎抓取系统(Baidu、Google、Yahoo等)的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。

  通用网络爬虫 从互联网中搜集网页,采集信息,这些网页信息用于为搜索引擎建立索引从而提供支持,它决定着整个引擎系统的内容是否丰富,信息是否即时,因此其性能的优劣直接影响着搜索引擎的效果。

  聚焦爬虫,是"面向特定主题需求"的一种网络爬虫程序,它与通用搜索引擎爬虫的区别在于: 聚焦爬虫在实施网页抓取时会对内容进行处理筛选,尽量保证只抓取与需求相关的网页信息。

  了解了爬虫是什么,接下来我们就开始爬虫之旅了。

  网络爬虫抓取过程可以理解为模拟浏览器操作的过程

  浏览器的主要功能是向服务器发出请求,在浏览器窗口中展示您选择的网络资源,HTTP是一套计算机通过网络进行通信的规则。

posted @ 2017-11-03 17:57  JeffD  阅读(1058)  评论(0编辑  收藏  举报