本节书摘来自华章出版社《精通Python网络爬虫:核心技术、框架与项目实战》一书中的第3章,第3.5节,作者 韦 玮,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
3.5 身份识别
在爬虫对网页爬取的过程中,爬虫必然需要访问对应的网页,正规的爬虫一般会告诉对应网页的网站站长其爬虫身份。网站的管理员则可以通过爬虫告知的身份信息对爬虫的身份进行识别,我们称这个过程为爬虫的身份识别过程。
那么,爬虫应该如何告知网站站长自己的身份呢?
一般地,爬虫在对网页进行爬取访问的时候,会通过HTTP请求中的User Agent字段告知自己的身份信息。一般爬虫访问一个网站的时候,首先会根据该站点下的Robots.txt文件来确定可爬取的网页范围,Robots协议是需要网络爬虫共同遵守的协议,对于一些禁止的URL地址,网络爬虫则不应爬取访问。同时,如果爬虫在爬取某一个站点时陷入死循环,造成该站点的服务压力过大,如果有正确的身份设置,那么该站点的站长则可以想办法联系到该爬虫方,然后停止对应的爬虫程序。
当然,有些爬虫会伪装成其他爬虫或浏览器去爬取网站,以获得一些额外数据,或者有些爬虫,会无视Robots协议的限制而任意爬取。从技术的角度来说,这些行为实现起来不难,但是这些行为是我们不提倡的,因为只有共同遵守一个良好的网络规则,才能够达到爬虫方和站点服务方的双赢。