robots.txt
robots.txt是指存储在网页根目录下的文件。广义上,也指互联网上的机器人协议。
robots协议
机器人协议代表机器人排除协议。这个协议告诉网络爬虫哪些网站可以爬行,哪些爬虫可以爬行这个网站。 robots协议是通过在网站根目录下放置一个robots.txt(全小写)文件来实现的。
robots.txt 语法
robots.txt 文件非常直观,每行一条规则。这里简单介绍一下,只要读者基本能看懂robots.txt即可(其实网上有很多生成robots.txt的工具,即使你想写robots.txt也不需要学习它们全部,只需看看您需要使用什么))。
-User-Agent:允许访问的搜索引擎爬虫的名称,如果有多个部分,就是关于这个爬虫的规则。因此,所有爬虫都可以访问它。
-Disallow:不允许访问的目录名,以/开头,该目录下的所有链接都被阻止。如果是特定网页,则该网页被屏蔽。如果只有一个/,则所有链接都被屏蔽。
- 允许:与禁止规则相反。
-站点地图:爬虫可以爬取的其他无法从网站直接访问的链接和相关信息。
-crawl-delay:抓取延迟,抓取之间等待的秒数。 (好像已经不支持了)
君子协定
可见robots协议只是告诉爬虫哪些网站不能爬行,并没有真正起到阻止爬虫的作用。其实排除爬虫的方法有一些,比如检查UA头、高频访问弹出验证界面、验证码(非机器人验证,谷歌最不喜欢这个)、使用Ajax等.但是这些方法要么阻碍了爬虫的爬行能力,要么甚至妨碍了真正的用户。
为了用户、服务器和搜索爬虫的共同利益,robots协议实际上是服务器和搜索引擎之间遵守的君子协议。因此,很多规则的使用实际上取决于各大搜索引擎(例如Request-rate几乎不被搜索引擎识别),而robots协议的语法也在不断变化。
希望看到这里的读者也能遵守机器人协议,技术应该向上使用。
何时需要robots协议?
显然,需要的时候就用它。当您不希望某些爬虫访问某些页面时,机器人协议会派上用场。比如百度的robots协议其实是禁止360的爬虫的(我大胆推测,因为很多爬虫都写了但360没有写,而百度的robots.txt好像一年前就这样了,360写得很慷慨)。如果你想让爬虫爬取你网站的所有内容,最好不要直接使用robots协议。
查看4399.com的robots.txt
4399的robots.txt文件如下:
用户代理: *Disallow: /upload_pic/Disallow: /upload_swf/Disallow: /360/Disallow: /public/Disallow: /yxbox/Disallow: /360game/Disallow: /baidugame/Disallow: /loadimg/Disallow: /index_pc.ht mDis允许: /flash/32979_pc.htmDisallow: /flash /35538_pc.htmDisallow: /flash/48399_pc.htmDisallow: /flash/seer_pc.htmDisallow: /flash/58739_pc.htmDisallow: /flash/78072_pc.htmDisallow: /flash/130396_pc.htmDisallow 3 3360 /flash/80727_pc.htmDisallow: /flash/151038_pc.htmDisallow: /flash/10379_pc。 htmDisallow: /flash/188528_pc.htmDisallow: /flash/*_pc.htmDisallow: /index_old.htmDisallow: /flash/188420_2.htmDisallow: /flash/188420.htmDisallow: /zzy/188420.htm Disallow: /flash/209902.htm 第一个可以看到4399 line 网站允许所有爬虫。由于我们只爬取首页,所以下面就不用详细看Disallow了,只要不带/即可(其实4399并没有拦截UA头,不知道爬取频率是否有限制,我想不是)。
那么我们就可以开始分析4399的主页了。
设定并分析目标
2020年8月25日4399网站首页如图所示。我们暂时将目标设置为大红圈内的部分来获取文本内容和链接:
F12查看源码,发现这个范围的源码就在上图小方框内,只有一个class是middle_2。我们需要的一切都在叶节点的跨度内。分析这段代码的DOM,绘制如图所示。
标题:Python爬虫入门(四):实战,爬取4399个小游戏首页
链接:https://www.gbbxw.com/news/rj/19458.html
版权:文章转载自网络,如有侵权,请联系删除!
用户评论
太赞了!通过练习使用Python爬虫,我成功地爬取了4399小游戏首页的游戏列表,学习过程既有趣又有挑战。
有11位网友表示赞同!
教程对初学者非常友好,循序渐进地介绍了Python爬虫的基础知识和实际应用,实操很给力。
有18位网友表示赞同!
跟着这个系列视频深入研究后,我开始明白网页数据抓取的奥妙,4399游戏首页也成了我练手的好资料库。
有20位网友表示赞同!
教程中对于HTML解析的部分很详细,让我在爬取4399游戏页面时更加得心应手。
有6位网友表示赞同!
通过实战项目,我学会了一些小技巧和工具使用,感觉对爬虫的了解不仅是在理论层面,更有了实际行动的经验。
有5位网友表示赞同!
感谢这个Python爬虫入门教程系列,爬4399小游戏首页让我对互联网数据收集的技术充满兴趣。
有6位网友表示赞同!
学习到的关键点:CSS选择器的巧妙用法在解析复杂网页结构时非常有用,尤其针对像4399这样的页面。
有12位网友表示赞同!
虽然一开始在爬取动态加载内容上遇到了困难,但教程引导我如何借助Selenium解决这一问题,很实用!
有19位网友表示赞同!
教程中的Python代码注释清晰,很容易跟着一步步操作,对新手而言是一个很好的起点。
有15位网友表示赞同!
实践爬4399小游戏的体验让我更理解网络数据抓取的复杂性与魅力,挑战越大成就感越足。
有7位网友表示赞同!
借助这个教程,我不仅学到了实用的技术技能,也感受到编程解决问题的乐趣。
有9位网友表示赞同!
对于网页结构不是特别了解的我来说,课程讲解一步步深入HTML和CSS解析逻辑,使爬取4399游戏信息变得容易上手。
有19位网友表示赞同!
教程中提到的一些技巧,如避免过度依赖IP屏蔽、合理设置代理等,在我实际操作过程中发挥了大作用。
有9位网友表示赞同!
跟着这个系列做下来的爬虫项目,让我对互联网数据收集的必要性和局限性有了更深的认识
有5位网友表示赞同!
课程最后推荐了一些工具和资源,帮助我在完成4399游戏页面抓取后还能进一步提升技能。
有18位网友表示赞同!
通过这个教学视频的学习,我增强了编程自我学习的能力,觉得每一步进步都很有价值。
有11位网友表示赞同!
爬取4399小游戏首页的游戏列表时,我还学到了如何进行数据清洗和整理,为后续的数据分析打下了基础。
有10位网友表示赞同!
此课程不仅让我熟悉了Python的语法在实际场景中的应用,还激发了对进一步探索爬虫更深层次的兴趣。
有14位网友表示赞同!
实战部分的指导让我深刻体验到理论学习到实战落地的过程,并且在这个过程中也发现了自己对编程的热爱。
有13位网友表示赞同!
通过这个教程,我对如何优雅地处理网络请求和响应有了更深的理解,对于处理4399游戏数据更加得心应手。
有5位网友表示赞同!