Python爬虫从入门到精通(二)爬虫的基本常识

目录

一、爬虫的合法性问题

二、爬虫的准备工作:网站的背景调研

1 、robots协议

2、网站地图sitemap

3、估算网站的大小

4、识别网站用了何种技术

5、寻找网站的所有者


一、爬虫的合法性问题

目前还处于不明确的蛮荒阶段,“允许哪些行为”这种基本秩序还处于建设中。

至少目前来看,如果抓取的数据为个人所用,则不存在问题;如果数据用于转载,那么

抓取数据的类型就很重要了:一般来说,当抓取的数据是实现生活中的真实数据(比如,营业地址,电话清单)时,是允许转载的,但是,如果是原创数据(比如,意见或评论),通常就会受到版权限制,而不能转载。

讨论:百度爬虫抓取数据行为的合法性问题。

**注意:不管怎么样,作为一个访客,应当约束自己的抓取行为,这就是说要求下载请求的速度需要限定在一个合理值之内,并且还需要设定一个专属的用户代理来标识自己。

二、爬虫的准备工作:网站的背景调研

网站的背景调研对聚焦的网络爬虫而言至关重要,正所谓:知己知彼,百战不殆。

1 、robots协议

Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。

       比如:

淘宝网:https://www.taobao.com/robots.txt

         再比如:

https://www.douban.com/robots.txt

搜索引擎和DNS解析服务商(如DNSPod等)合作,新网站域名将被迅速抓取。但是搜索引擎蜘蛛的爬行是被输入了一定的规则的,它需要遵从一些命令或文件的内容,如标注为nofollow的链接,或者是Robots协议。另外一种则是,通过网站的站长主动对搜索引擎提交网站的网址,搜索引擎则会在接下来派出“蜘蛛”,对该网站进行爬取。

2、网站地图sitemap

sitemap是一个网站所有链接的容器。很多网站的连接层次比较深,蜘蛛很难抓取到,网站地图可以方便搜索引擎蜘蛛抓取网站页面,通过抓取网站页面,清晰了解网站的架构,网站地图一般存放在根目录下并命名为sitemap,为搜索引擎蜘蛛指路,增加网站重要内容页面的收录。网站地图就是根据网站的结构、框架、内容,生成的导航网页文件。大多数人都知道网站地图对于提高用户体验有好处:它们为网站访问者指明方向,并帮助迷失的访问者找到他们想看的页面。    

网站地图sitemap有两种形式:

A.HTML:称为HTML版本的网站地图,英文是sitemap,特质HTML版网站地图,这个版本的网站地图就是用户可以在网站上看到的,列出网站上所有主要页面的链接的页面。对小网站来说,甚至可以列出整个网站的所有页面,对于具有规模的网站来说,一个网站地图不可能罗列所有的页面链接,可以采取两种办法,一种办法是网站地图只列出网站最主要的链接,如一级分类,二级分类,第二种办法是将网站地图分成几个文件,主网站地图列出通往次级网站的链接,次级网站地图在列出一部分页面链接。

B.XML:XML版本的网站地图是由Google首先提出的,怎么区分了,上面所说的HTML版本的s是小写的,而XML版本的S则是大写的,XML版本的网站地图是由XML标签组成的,文件本身必须是utf8编码,网站地图文件实际上就是列出网站需要被收录的页面的URL,最简单的网站地图可以是一个纯文本件,文件只要列出页面的URL,一行列一个URL,搜索引擎就能抓取并理解文件内容。

可以使用这个网站工具来生成某网站的sitemap: www.sitemap-xml.org

3、估算网站的大小

可以使用搜索引擎来做,比如在百度中使用site:

说明:这里只是通过百度搜索引擎大致来估算网站的大小,受到网站本身对搜索引擎爬虫的限制,及搜索引擎本身爬取数据技术的限制,所以这只是一个经验值,可以作为估算网站体量量级的一个经验值。

4、识别网站用了何种技术

为了更好的了解网站,抓取该网站的信息,我们可以先了解一下该网站大致所使用的技术架构。

安装builtwith :  

Windows: pip install bulitwith

Linux:     sudo pip install builtwith

使用:在Python交互环境下,输入:

import builtwith

builtwith.parse("http://www.sina.com.cn")

5、寻找网站的所有者

有时候,我们需要知道网站的所有者是谁,这里在技术上有个简单的方法可以参考。

安装python-whois :  

Windows: pip install python-whois

使用:在Python交互环境下,输入:

import whois

whois.whois("http://www.sina.com.cn")

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>