爬虫小白来请教了!

  • s
    sss636
    自学了点python,也写过几个小爬虫。之前爬过需要登录的网站,也搞定了。今天发现https://sobooks.cc/这个网站只要输入下验证码,就能显示提取码,感觉还是很简单的,就想试着写一下。
    没想到遇到了人生难题。。。
    我直接用浏览器访问,没有问题,直接到网页内容了。
    但是用requests.get,却一直403,期间试过把所有的headers头都写进去,还是一样,返回403,内容是个一人机验证的页面。
    实在没办想,就想用selenium来试试,结果也不行,selenium打开的页面,也跳转到人机验证页面。
    实在没办法了。。。






  • r
    ratatata
    应该是禁了 IP。正规搞爬虫业务的都会有自己的 IP 池。

    但说实话,爬虫这种东西没有实际意义,浪费的时间都是在破解对方出的规则而已。这些时间还不如刷地板来的好玩。
  • s
    superflaner
    人机验证怎么绕过?
  • h
    happyd8699
    改user-agent?或者测试多了,IP被列入检测名单了
  • r
    ratatata
    回复3#superflaner


    2xr4bj.gif
  • s
    sss636
    回复2#ratatata

    ip没有ban,在403的情况下,我用浏览器还是能正常访问的,但是用无痕模式浏览也会跳人机验证
  • c
    chim
    学黑客直接扒裤。这个网站我用代理,今天第一次点都要人机认证。
  • B
    Bellinggg
    options.add_experimental_option('excludeSwitches', ['enable-automation']) # 此步骤很重要,设置为开发者模式,防止被各大网站识别出来使用了Selenium
  • r
    ratatata
    回复6#sss636

    如果不是 IP,猜测应该是有做客户端指纹的验证。
    换 selenium 或者无痕模式实际上都是换了一个客户端,导致指纹改变。指纹生成的因素有很多,不同客户端肯定会有不同指纹。登录后的用户 cookie 当然也可以基于指纹来生成。

    所以换了客户端后原先的 cookie 用不了也正常吧。
  • s
    sss636
    回复8#Bellinggg


    试了,还是没有用
  • s
    sss636
    回复9#ratatata
    问题是request直接403,怎么获取第一次访问时的cookies,我直接get方法,不管403,用获取到的headers里的cookies,更新到session的cookies,再重新get,还是不行
  • B
    Bellinggg
    用postman试试
    iOS fly ~
  • i
    ifpig
    # 初始化一个CookieJar来处理Cookie
    cookieJar=cookielib.CookieJar()
    # 实例化一个全局opener,只要open url是挂了这个,后续的页面都会自动使用cookie,不需要你每次输入cookie了
    opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookieJar))
    urllib2.install_opener(opener)
  • t
    tank99
    很多互联网网站有反爬虫机制的,你需要多学习些知识,还是比较有难度的。