2.爬虫基本流程

整个Internet是一张大的网络,通过使用爬虫自动化工具,爬取我们想要访问的web下面的数据。爬虫爬取数据基本有四/五个步骤流程。

1. 爬虫的基本流程

1.1 发起请求

通过HTTP库来向目标站点发起http请求,即是发送一个request,里面可以包含有header等信息,等待服务器响应。请求类型一般有GETPOST类型。

  • GET请求:在URL中携带参数

  • POST请求:需要构建表单,指定请求参数

在request的header里,可以指定user-agent, host, cookie, language, encoding等信息。

1.2 获取响应内容

如果服务器认为这是一个正常的请求,则会返回一个response给客户端,其内容就是该网页的内容,其类型可能是HTML, JSON字符串或者二进制数据(图片视频等)

1.3 解析响应内容

  • 如果返回内容为HTML内容,则使用一些库如beautifulsoup来解析获取需要的标签如div的值。

  • 如果返回内容为JSON内容,可以直接转换为JSON对象来进行解析。

  • 如果返回为二进制内容,可以做保存或者进一步处理。

1.4 保存数据

可以将解析后的数据保存到文本,Excel或者数据库,常见的方式为保存到如MongoDBRedis这类非关系型的数据库中。

1.5 分析数据

对保存后的数据进行进一步的分析。

2. 观察HTTP/HTTPS访问过程

使用Chrome/Firefox浏览器打开网址,右键点击检查即可进入网页元素查看模式,选择Network页,会发现在 Network 页面的下方出现了一个个的条目,那么这一个条目就代表一次发送 Request 和接收 Response 的过程,如下图。

每条记录都分别有Name,Status,Type,Initiator,Size, TimeWaterfall,分别表示:

  • Name:即 Request 的名称。一般会用URL的最后一部分内容当做名称。

  • Status:即 Response 的状态码。这里显示为 200,代表 Response 是正常的,通过状态码我们可以判断发送了 Request 之后是否得到了正常的 Response。

  • Type:即 Request 请求的文档类型。这里为 document,代表我们这次请求的是一个 HTML 文档,内容就是一些 HTML 代码。

  • Initiator:即请求源。用来标记 Request 是由哪个对象或进程发起的。

  • Size:即从服务器下载的文件和请求的资源大小。如果是从缓存中取得的资源则该列会显示 from cache。

  • Time:即发起 Request 到获取到 Response 所用的总时间。

  • Waterfall:即网络请求的可视化瀑布流。

单机每个请求,在右侧可以看到header,preview,Response,CookiesTiming.其中Response是服务器返回数据,浏览器渲染这些数据显示成我们可见的样式。

注:在ALL旁边有XHR标签页,这个表示的是XMLHttpRequest 对象,Jquery中的Ajax就是对 XHR的封装。

Last updated