爬虫协议

这几天在爬网站时发现有个别网站抓取时返回值为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"

参考资料:

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值