写在前面的话 :最近博主在学习网络爬虫的相关技术(基于 Python 语言),做为一个学习的总结,打算用博客记录下来,也但愿和你们分享一下本身在学习过程当中的点点滴滴,话很少说,让咱们立刻开始吧html
什么是网络爬虫,这里先引用一下 百度百科 上的解析:算法
网络爬虫是一种按照必定的规则,自动地抓取万维网信息的程序或者脚本浏览器
提及网络爬虫,人们经常会用这样一个比喻:若是把互联网比喻成一张网,那么网络爬虫就能够认为是一个在网上爬来爬去的小虫子,它经过网页的连接地址来寻找网页,经过特定的搜索算法来肯定路线,一般从网站的某一个页面开始,读取网页的内容,找到在网页中的其它连接地址,而后经过这些连接地址寻找下一个网页,这样一直循环下去,直到把这个网站全部网页都抓取完为止服务器
下面的图片很好的展示了通常网络爬虫的基本过程,下面让咱们来详细解释一下这张图片的含义吧网络
爬虫的第一个步骤就是对起始 URL 发送请求,以获取其返回的响应学习
值得注意的是,发送请求实质上是指发送请求报文的过程网站
请求报文 包括如下四个方面:请求行、请求头、空行和请求体url
可是,每每在使用 Python 相关的网络请求库发送请求时,只需关注某些特殊的部分便可,而非完整的请求报文,下面咱们将以粗体的形式标识出咱们须要特别关注的部分翻译
请求行由请求方法、请求 URL 和 HTTP 协议版本 3 个字段组成,字段间使用空格分隔orm
① 请求方法:请求方法是指对目标资源的操做方式,常见的有 GET 方法和 POST 方法
② 请求 URL:请求 URL 是指目标网站的统一资源定位符 (Uniform Resource Locator,URL)
③ HTTP 协议版本:HTTP 协议是指通讯双方在通讯流程和内容格式上共同遵照的标准
请求头 被认为是请求的配置信息,如下列举出经常使用的请求头信息(持续补充中)
空行标志着请求头的结束
请求体 根据不一样的请求方法包含不一样的内容
若请求方法为 GET,则此项为空;若请求方法为 POST,则此项为待提交的数据(即表单数据)
爬虫的第二个步骤就是获取特定 URL 返回的响应,以提取包含在其中的数据
一样的,响应实际上是指完整响应报文,它包括四个部分:响应行、响应头、空行和响应体
响应行由 HTTP 协议版本、状态码及其描述组成
① HTTP 协议版本:HTTP 协议是指通讯双方在通讯流程和内容格式上共同遵照的标准
② 状态码及其描述
响应头 用于描述服务器和数据的基本信息,如下列举出经常使用的响应头信息(持续补充中)
空行标志着响应头的结束
响应体 就是网站返回的数据,在下一个步骤中咱们须要对其进行分析处理
解析网页实质上须要完成两件事情,一是提取网页上的连接,二是提取网页上的资源
提取连接实质上是指获取存在于待解析网页上的其余网页的连接
网络爬虫须要给这些连接发送请求,如此循环,直至把特定网站所有抓取完毕为止
提取数据则是爬虫的目的,常见的数据类型以下:
最终,咱们能够对所得到的资源做进一步的处理,从而提取出有价值的信息
【爬虫系列相关文章】