爬虫协议

544次阅读
没有评论

这几天在爬网站时发现有个别网站抓取时返回值为None、[ ]甚至是字段中返回“系统错误”等字眼),反复确认代码无误,怀疑是网站有反爬虫机制,尝试增加header后依然无法提取,考虑到只是提取本页面数据,并没有频繁抓取数据,应该与抓取频率无关。

尝试查看网站的爬虫协议:
Robots 协议(也称爬虫协议,机器人协议)是互联网爬虫的一项公认的道德规范,全称是“网络爬虫排除标准(Robots exclusion protocol)”,这个协议用来告诉引擎,哪些页面是可以抓取的,哪些不可以,例如:

  • 禁止访问某个文件、文件夹
  • 禁止某些种类的爬虫访问
  • 限制爬虫访问网站的频率

搜索引擎蜘蛛访问网站时,它会首先检查该站点根目录下是否存在robots.txt文件,如果该文件存在,搜索引擎蜘蛛就会按照该文件中的内容来确定爬行的范围;如果该文件不存在,则搜索引擎蜘蛛将能够访问网站上所有没有被口令保护的页面(沿着链接抓取)

抓取网页之间,建议先阅读robots.txt,了解并执行网站管理者制定的爬虫规则。

常见的查看robots协议的方法是在网址后+“/robots.txt’
比如豆瓣首页网址“https://www.douban.com”,要查看其robots协议则修改为“https://www.douban.com/robots.txt
爬虫协议

  • Allow代表允许访问
  • Disallow代表禁止访问(Disallow/代表禁止访问所有页面,即完全屏蔽)
  • User-agent可以判断是哪家爬虫(User-agent *表示对象是所有爬虫)
  • Crawl-delay表示爬取的时间间隔为5s
    或者直接通过Robots检测工具输入网址获取网站爬虫协议

常见的搜索引擎爬虫有:

  • 谷歌机器人 googlebot
  • 百度机器人 baiduspider
  • 雅虎蜘蛛:slurp
  • 搜狗蜘蛛:sougou spider
  • 有道机器人:yodaobot/OutfoxBot
  • 360蜘蛛 360Spider
  • 必应机器人 bingbot

各大蜘蛛对robots.txt支持程度参考:搜索引擎蜘蛛与robot.txt的那些事儿

在网址后加“/robots.txt"后缀的用法并不适用于所有网站,比如尝试了在笔记网址”https://blog.csdn.net/dragongreenfire/article/details/114022063“加后缀,但是刷新后还是原页面,后来发现需要在网站首页取网址“https://www.csdn.net/robots.txt”,这是因为robots.txt文件必须驻留在域的根目录(根目录就是网站程序所在的目录),位于子目录中的robots.txt文件无效,漫游器只在域的根目录这个文件。正确的做法是在浏览器的网址搜索栏中,输入网站的根域名,然后再输入“/robots.txt"

参考资料:

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:Python教程2022-10-24发表,共计1190字。
新手QQ群:570568346,欢迎进群讨论 Python51学习