伪原创网站源码(有些网站是防爬虫的吗?如何解读网页的防爬机制)

优采云 发布时间: 2022-01-26 21:19

  伪原创网站源码(有些网站是防爬虫的吗?如何解读网页的防爬机制)

  如前所述,一些网站s是reptile-proof的。事实上,任何具有一定规模的网站,大公司的网站,或者盈利能力比较强的网站,都有先进的防爬措施。一般来说,反爬有两种策略,一种是验证身份,一种是在门口踩死臭虫;或者在网站中植入各种反爬机制,让爬虫撤退。

  本节针对这两种反爬策略提出了一些对策。

  身份伪装

  就算是一些不知名的小网站,也多多少少会检查headers来验证访问者的身份,更何况是大的网站(忘了加headers了,直接红了)

  所以,为了让虫宝带着信息凯旋归来,就得教爬虫如何伪装;有时候伪装是不够的,我们还需要教给爬行动物具体的“如何做人”,让它们表现得更像普通人,而不是光棍一个手快的未知生物。

  自定义请求标头

  

  headers = {'Referer':'https://accounts.pixiv.net/loginlang=zh&source=pc&view_type=page&ref=wwwtop_accounts_index',#如某些网站(如p站)要检查referer,就给他加上

'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36'#每个爬虫必备的伪装

}

r = requests.get("https://segmentfault.com/a/1190000014383966",headers=headers)

  这两个对于headers数据来说通常已经足够了,作者强烈建议爬虫中的每个请求都使用一个user-agent,总比没有好,加了也不会报错。

  降低主 IP 访问频率

  注意:这是针对长期、*敏*感*词*爬虫的

  有的网站会监控某个IP的访问频率和次数。一旦超过某个阈值,他们就会将您作为爬行动物嫌疑人排除在外。这个时候,你必须想办法降低你的存在感。

  time.sleep(60)#用python自带time模块的休眠功能

proxies = {'http': 'http://10.10.1.10:3128',#“协议类型:完整ip地址+端号”

'https': 'http://10.10.1.10:1080'}#代理ip字典,随机调用

r = requests.get(url,headers=headers,proxies=proxies)

  防爬(简要分析)

  在系列的第一部分中,我提到了获取网页源代码的陷阱。是的,有时候headers就足以伪装等等,但是你仍然无法如你所愿地得到正确的网页源代码。要么你缺,要么给你一堆无关紧要的东西,要么干脆让你红。

  由此可见,重点不是假冒或不伪装的问题,而是如何解读网页的反爬机制来提出解决方案,这需要比较高的观察分析能力。

  目前我遇到的主要有:

  补充:

  selenium 模块,模拟浏览器,功能强大但缺点是速度慢。

  其实动态加载是为了方便用户点击查看,但这也增加了爬虫的难度,因为很多信息都是隐藏的。

  最后

  伪装有套路,代码直接覆盖,多加头总是对的。

  嵌入式反爬非常灵活,没有固定的代码格式,需要时间去分析。

  本文中出现的方法/模块后面会有例子,请不要使用。

  下一篇正式进入网页分析的话题,接下来就可以开始写一个小爬虫了♪(^∀^●)ノ。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线