目录通过robots.txt来限制爬虫:通过User-Agent来控制访问:验证码:IP限制:cookie:js渲染:爬虫和反爬的对抗一直在进行着…为了帮助更好的进行爬
爬虫和反爬的对抗一直在进行着…为了帮助更好的进行爬虫行为以及反爬,今天就来介绍一下网页开发者常用的反爬手段。
爬虫都遵守着一个协议:robots.txt
robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。
robots.txt应放置于网站的根目录下。
如果想单独定义搜索引擎的漫游器访问子目录时的行为,那么可以将自定的设置合并到根目录下的robots.txt,或者使用robots元数据(Metadata,又称元数据)。
robots.txt协议并不是一个规范,而只是约定俗成的,所以并不能保证网站的隐私。
注意robots.txt是用字符串比较来确定是否获取URL,所以目录末尾有与没有斜杠“/”表示的是不同的URL。
robots.txt允许使用类似”Disallow: *.gif”这样的通配符[1][2]。
解决方法:
这实际上只是一个”君子协议“,遵守与否,都在于爬虫的编写者。
无论是浏览器还是爬虫程序,在向服务器发起网络请求的时候,都会发过去一个头文件:headers 这里面的大多数的字段都是浏览器向服务器”表明身份“用的
对于爬虫程序来说,最需要注意的字段就是:User-Agent
很多网站都会建立 user-agent白名单,只有属于正常范围的user-agent才能够正常访问。
解决方法:
在发送请求时使用该网站user-agent白名单的的UA
可以使用python的第三方模块fake_useragent 随机生成UA,需手动安装
>>> from fake_useragent import FakeUserAgent
>>> ua = FakeUserAgent()
>>> ua.random
'Mozilla/5.0 (windows NT 5.1) AppleWEBKit/537.36 (Khtml, like Gecko) Chrome/34.0.1866.237 Safari/537.36'
最为经典的反爬虫策略当属“验证码”了。因为验证码是图片,用户登录时只需输入一次便可登录成功,而我们程序抓取数据过程中,需要不断的登
录,比如我们需要抓取1000个用户的个人信息,则需要填1000次验证码,而手动输入验证码是不现实的,所以验证码的出现曾经难倒了很多网络爬虫工程师。
解决方法:
另外一种麻烦的反爬虫策略当属封ip和封账号了。本人初期曾经用一台机器抓取拉钩,导致短时间内账号被封,IP被封,所以遇到类似问题一定要多加小心。
解决方法:
通过cookie限制抓取信息,比如我们模拟登陆之后,想拿到登陆之后某页面信息,千万不要以为模拟登陆之后就所有页面都可以抓了,有时候还需要请求一些中间页面拿到特定cookie,然后才可以抓到我们需要的页面。
解决方法:
通过浏览器的F12查看器,观察具体整个过程都请求了哪些URL(主要包括HTML、JS、XHR),挨个试,试到成功为止。
采用JS渲染页面。什么意思呢,就是返回的页面并不是直接请求得到,而是有一部分由JS操作DOM得到,所以那部分数据我们也拿不到咯。
解决方法:
以上就是常见的反爬虫urllib技术分享的详细内容,更多关于反爬虫urllib技术的资料请关注编程网其它相关文章!
--结束END--
本文标题: 常见的反爬虫urllib技术分享
本文链接: https://lsjlt.com/news/147309.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0