爬虫三步走包括爬取数据、解析数据和保存数据,Python强大之处就是每一步都提供了强大的库,我们只要使用对应的库,就能把网站中想要的数据爬取下来。第一步爬取数据,最常用的就是Requests库。Requests库主要的功能是模拟浏览器向网站发起HTTP请求,把整个网页的HTML代码爬取下来,下面介绍下Requests库的使用流程。
安装
导入
主要方法
一个HTTP请求通常包括URL和请求方法,URL指的是统一资源定位符,可以理解成一个网络上的资源;而常用的请求方法有get、post、put、delete、patch,分别代表对资源的获取、创建、创建和更新、删除、部分更新。head指只获取头信息。
一个HTTP方法有安全和幂等两个属性,其中安全指的是不修改资源的HTTP方法;幂等指的是无论调用多少次,结果仍然相同。
下面是一些常用的HTTP方法的安全性和幂等性:
更详细的可查看: RESTful手册
使用
返回
更多状态码查看: HTTP状态码
封装通用方法
定义函数
设置超时
异常处理
参数和headers
一般网页的反爬机制是通过检查请求头信息实现的,当发现要爬取的网页headers跟一般的请求头不一致时,我们需要添加headers来达到模拟浏览器发起请求,才能成功获取数据。有时候也需要传参数,比如翻页参数等。
常见的请求头
Accept:
Accept-Encoding:
Accept-Language:
Connection:
Cookie:
Host:
Referer:
User-Agent:
爬虫协议
搜索引擎的蜘蛛机器人(spider)对网站进行爬行并索引网页,并随后通过关键字搜索为网站带来流量,但是有些私密的或是不适宜公开的信息或数据不希望被爬取,这时候就需要robots.txt了,通过它对搜索引擎给予指示,限制搜索引擎对特定内容的访问。
什么是爬虫协议:告诉爬虫机器人哪些页面可以抓取,哪些页面不可以抓取
如何查看爬虫协议:在网站根域名后加上robots.txt,如淘宝的爬虫协议:https://www.taobao.com/robots.txt
了解更多爬虫协议: robots协议
robots.txt语法:
robots.txt实例:
需要注意的是:
如果指定了某个机器人的规则,对于所有机器人的规则对该机器人就不起作用。
robots.txt 不是命令,也不是防火墙,只是一个“君子协议”, 无法阻止恶意闯入。
下一篇将会进行实战,爬取一些知名的网站。看看它们的反爬机制是怎样的,能不能爬取到我们想要的数据。
领取专属 10元无门槛券
私享最新 技术干货