爬虫协议-程序员宅基地

技术标签: 爬虫  

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

参考资料:

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dragongreenfire/article/details/114385129

智能推荐

【22】数据可视化:基于 Echarts + Python 动态实时大屏范例- MySQL数据源_python mysql echarts 源代码-程序员宅基地

文章浏览阅读3.8k次,点赞7次,收藏77次。写在前面,最近收到了很多小伙伴们的建议,大屏的数据源是否可以展示更丰富的种类,比如Excel,数据库等,那就更加贴近小伙伴们的实际工作场景,可以很快在工作中应用,所以应小伙伴需求,就诞生了这篇【基于 Echarts + Python 动态实时大屏范例(DataBase数据源)- 可视大屏案例】。另外,很多实际展示场景下需要自动播放效果,本案例也展示了Events和DispatchAction触发的饼图和地图高亮效果,非常实用。之前小伙伴们建.._python mysql echarts 源代码

递归算法(图文详解)-程序员宅基地

文章浏览阅读10w+次,点赞229次,收藏1.1k次。递归算法说简单点即就是自身程序的调用,若你掌握递归相应逻辑,递归之时你便可以起飞!!!_递归算法

一觉醒来2T硬盘数据化为乌有,背后或是两名黑客在竞争式入侵-程序员宅基地

文章浏览阅读1.3w次,点赞153次,收藏125次。博雯 发自 凹非寺量子位 报道 | 公众号 QbitAI一觉醒来,几个T的硬盘数据化为乌有。不说暗无天日吧,也至少是惨绝人寰了。毫不夸张的说,上周四的6月24日,西部数据硬盘的My Boo...

html中页面超出浏览器滚动条,html页面内容超出后显示水平滚动条的问题_html/css_WEB-ITnose...-程序员宅基地

文章浏览阅读1.5k次。这个问题已经遇到好几次,解决起来也熟练了很多。出现这种问题一般都是html或页面中的某一内部元素宽度超了。下面总结我遇到的几种情况:1、某一内部元素width设为100%,然而它还有border的宽度,border的宽度不包含在width中,所以结果超了。2、span行内元素,由于它是行内元素,不设display:block之类,宽度设定对它没用,当初弄的时候没有意识到这个问题,结果在谷歌浏览器没..._html页面設置超出100%出現滾動條

【EXCEL绘制地图】获取地图图标信息时遇到问题。请确保处于联机状态,然后重试_获取地图图表信息时遇到问题,请确保处于联机状态-程序员宅基地

文章浏览阅读3.3k次。【EXCEL绘制地图】获取地图图标信息时遇到问题。请确保处于联机状态,然后重试问题说明:如题,在绘制全球数据地图时报错,但是中国地图不会报错。解决方案:将excel上的office账户退出即可参考网站:为什么我的3D地图无法使用..._获取地图图表信息时遇到问题,请确保处于联机状态

hdu5391威尔逊定理-程序员宅基地

文章浏览阅读1.5k次。威尔逊定理在初等数论中,威尔逊定理给出了判定一个自然数是否为素数的充分必要条件。即:当且仅当p为素数时:( p -1 )! ≡ -1 ( mod p ),但是由于阶乘是呈爆炸增长的,其结论对于实际操作意义不大。hdu5391用到了这一数论定理。Zball in Tina TownTime Limit: 3000/1500 MS (Java/Others) Me_hdu5391

随便推点

开发常用网站_网页开发常用的一些图片网站-程序员宅基地

文章浏览阅读1.2k次,点赞4次,收藏20次。图床 - 引用ur图片api - 调用接口和生产借口文档说明MDN - 学习前端chrome插件Octotree - github展示树Allow-Control-Allow-Origin - 跨域_网页开发常用的一些图片网站

飞桨深度学习笔记(二)-程序员宅基地

文章浏览阅读668次。文章目录第一章零基础入门深度学习(下)加载库数据处理模型设计训练配置训练过程保存模型测试模型完整代码今天是学习这门课程的第二天,学习内容是利用飞桨的深度学习平台来进行波士顿房价的预测,至于为什么要用飞桨这个平台,以下是官方回答,我也是刚接触,之前用的都是pytorch,现在一起学习呗,再次附上脑图链接:打卡学习笔记第一章零基础入门深度学习(下)加载库#加载飞桨、Numpy和相关类库import paddleimport paddle.fluid as fluidimport paddle.f

vc6 运行库的bug---C++程序稳定运行一段时间后异常中止__heap_alloc_dbg-程序员宅基地

文章浏览阅读1.5k次。转自:http://blog.csdn.net/Miracle08/article/details/1457060 最近发现Visual C++ 6.0有一个有趣的,能让programmer发疯的bug。Debug版本编译出来的程序可能最终会异常中止,也许是报告程序停在断点xxxxxxx。更确切地说是用debug 版本的运行时库编译的程序。 由于项目需要写了一个求最短路径的引__heap_alloc_dbg

Python 玩出花儿了!一文教你用 Python 制作吃豆人游戏! | 附代码-程序员宅基地

文章浏览阅读7.1k次,点赞19次,收藏70次。作者 | 李秋键责编 | Carol封图 | CSDN 下载自视觉中国近几年来Python语言得到了快速发展,而Pygame作为Python开发应用和游戏必备的库更是展现了Python的..._python吃豆人实验原理

tgp英雄联盟无法连接服务器未响应,lol点开始游戏没反应怎么办 完整解决办法一览...-程序员宅基地

文章浏览阅读2.6k次。相信不少玩家都在游戏中会碰到登陆游戏了之后不能点PLAY,不能点商城,不能点个人资料,反正什么都点不了的问题,今天小编就给大家来解答下要怎么解决吧。LOL点了PLAY没反映要怎么解决?很多人都有出现这个问题,在进游戏之前,应该就是在输入账号密码那里吧,要不就是选择服务器哪里,有一个选项,把QT勾选上,就可以了。以上就是特玩小编为大家带来的关于lol点了play反映的解决办法了,希望对你有帮助。相信..._tgp不能用

HDFS体系结构(各种进程状态)_hdfs中包含哪些守护进程-程序员宅基地

文章浏览阅读851次。HDFS体系结构(各种进程状态)NameNode【名称节点】开启方式(关闭方式):hdfs namenode(关闭Terminal)hadoop-daemon.sh start namenode(hadoop-daemon.sh stop namenode或杀死进程)start-dfs.sh(stop-dfs.sh或杀死进程)namenode默认大小..._hdfs中包含哪些守护进程

推荐文章

热门文章

相关标签