robots协议,网络爬虫robots
一 Robots协议
1点睛
Robots协议也叫爬虫协议和机器人协议,全称是Robots Exclusion Protocol,用来告诉爬虫和搜索引擎哪些页面可以抓取,哪些页面不可以抓取。
通常是一个名为robots.txt的文本文件,通常放在网站的根目录下。
当搜索爬虫访问一个站点时,它会首先检查这个站点的根目录中是否存在robots.txt文件。如果存在,搜索爬虫会根据其中定义的爬行范围进行爬行。如果找不到该文件,搜索爬虫将访问所有可直接访问的页面。
2示例1
用户代理:*不允许:/允许:/公共/3描述1
这样实现了所有搜索爬虫只能抓取公共目录的功能,并将以上内容保存为robots.txt文件,与网站的门户文件(如index.php、index.html、index.jsp等)一起放在网站的根目录下。).
Disallow指定不允许爬网的目录。例如,在上面的示例中将其设置为/意味着不允许对所有页面进行爬网。
Allow通常与Disallow一起使用,但不单独使用,以排除某些限制。现在我们将其设置为/public/,这意味着不允许爬取所有页面,但是可以爬取公共目录。
4示例2
用户代理:Baiduspider 5描述2
这意味着我们设置的规则对百度爬虫是有效的。如果有多个用户代理记录,将限制多个爬网程序进行爬网,但必须至少指定一个。
6禁止所有爬虫访问任何目录。
用户代理:*Disallow:/7允许所有爬网程序访问任何目录
用户代理:*Disallow: 8禁止所有爬虫访问网站的某些目录的代码如下:
user-agent:* disallow:/private/disallow:/tmp/9仅允许特定爬虫访问的代码如下:
用户代理:WebCrawlerDisallow:用户代理:*Disallow:/二常见爬虫名称
爬虫名称
名字
网站
蜘蛛
百度(全球最大的中文搜索引擎)
www.baidu.com
谷歌机器人
谷歌
www.google.com
360Spider
360搜索
www.so.com
YodaoBot
有能力的
www.youdao.com
ia_archiver
阿莱夏
www.alexa.cn
小型摩托车
远景公司
www.altavista.com
三robotparser
1点睛
了解了Robots协议之后,我们就可以使用robotparser模块来解析robots.txt这个模块提供了一种RobotFileParser,可以根据一个网站的robots.txt文件来判断一个爬虫是否有权限抓取这个网页。
这个类使用起来非常简单,只需要在构造函数中传入robots.txt的链接即可。
首先看一下它的声明:
URL lib . robot parser . robot file parser(URL= )
当然也可以不传入就声明,默认为空。最后,可以使用set_url()方法来设置它。
2RobotFileParser类的2个常用方法
Set_url():用于设置robots.txt文件的链接。如果在创建RobotFileParser对象时传入了一个链接,则不再需要使用此方法来设置它。
Read():读取robots.txt文件并分析它。请注意,此方法执行读取和分析操作。如果不调用这个方法,下一次判断就会为假,所以一定要调用这个方法。此方法不返回任何内容,而是执行读取操作。
Parse():用于解析robots.txt文件。传入的参数是robots.txt的某些行的内容,它会根据robots.txt的语法规则来分析这些内容。
Can_fetch():这个方法传入两个参数,第一个是User-agent,第二个是要抓取的URL。返回的内容是搜索引擎是否能抓取这个URL,返回的结果是真还是假。
Mtime():返回robots.txt最后一次爬取分析的时间,对于分析爬取了很长时间的搜索爬虫来说是必须的。可能需要定期检查抓取最新的robots.txt。
Modified():对于长期分析抓取的搜索爬虫也很有帮助。将当前时间设置为上次爬网和分析robots.txt的时间。
3代码
从urllib.robotparser导入RobotFileParser#创建RobotFileParser对象rp=RobotFileParser()#然后通过set_url()方法设置了robots.txt的链接。RP。set _ URL( http://www。金淑。com/robots。txt)RP。read()# can _ fetch()方法判断了网页是否可以被抓取。print(rp.can_fetch(* ,http://www .金淑。com/p/b 67554025d 7d ))打印(RP。can _ fetch( * ,http://www . jinshu . com/search?q=python page=1 type=collections ))4运行结果
e:\ web spider \ venv \ Scripts \ python。exe E:/web spider/3 _ 1 _ 4。假的
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。