爬虫小白来请教了!
- sss636自学了点python,也写过几个小爬虫。之前爬过需要登录的网站,也搞定了。今天发现https://sobooks.cc/这个网站只要输入下验证码,就能显示提取码,感觉还是很简单的,就想试着写一下。
没想到遇到了人生难题。。。
我直接用浏览器访问,没有问题,直接到网页内容了。
但是用requests.get,却一直403,期间试过把所有的headers头都写进去,还是一样,返回403,内容是个一人机验证的页面。
实在没办想,就想用selenium来试试,结果也不行,selenium打开的页面,也跳转到人机验证页面。
实在没办法了。。。 - ratatata应该是禁了 IP。正规搞爬虫业务的都会有自己的 IP 池。
但说实话,爬虫这种东西没有实际意义,浪费的时间都是在破解对方出的规则而已。这些时间还不如刷地板来的好玩。 - superflaner人机验证怎么绕过?
- happyd8699改user-agent?或者测试多了,IP被列入检测名单了
- ratatata
- sss636
- chim学黑客直接扒裤。这个网站我用代理,今天第一次点都要人机认证。
- Bellingggoptions.add_experimental_option('excludeSwitches', ['enable-automation']) # 此步骤很重要,设置为开发者模式,防止被各大网站识别出来使用了Selenium
- ratatata回复6#sss636
如果不是 IP,猜测应该是有做客户端指纹的验证。
换 selenium 或者无痕模式实际上都是换了一个客户端,导致指纹改变。指纹生成的因素有很多,不同客户端肯定会有不同指纹。登录后的用户 cookie 当然也可以基于指纹来生成。
所以换了客户端后原先的 cookie 用不了也正常吧。 - sss636
- sss636回复9#ratatata
问题是request直接403,怎么获取第一次访问时的cookies,我直接get方法,不管403,用获取到的headers里的cookies,更新到session的cookies,再重新get,还是不行 - Bellinggg用postman试试
iOS fly ~ - ifpig# 初始化一个CookieJar来处理Cookie
cookieJar=cookielib.CookieJar()
# 实例化一个全局opener,只要open url是挂了这个,后续的页面都会自动使用cookie,不需要你每次输入cookie了
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
urllib2.install_opener(opener) - tank99很多互联网网站有反爬虫机制的,你需要多学习些知识,还是比较有难度的。