51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 7820|回复: 3
打印 上一主题 下一主题

selenium爬虫被检测到 该如何破?

[复制链接]
  • TA的每日心情
    无聊
    2024-9-19 09:07
  • 签到天数: 11 天

    连续签到: 2 天

    [LV.3]测试连长

    跳转到指定楼层
    1#
    发表于 2017-11-10 16:11:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    你好, 我现在用selenium抓取一个网站的时候,被识别为爬虫,请问有什么破解的方法么? 代码如下 import time
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2017-11-10 16:13:46 | 只看该作者
    我刚用selenium+phanotomjs试了一下,发现返回结果和题主的一样。不得已使用了selenium+chrome/firefox,发现均出现这些问题。我觉得它的反爬策略不是根据爬虫的行为来判断的,因为使用爬虫打开网页它就已经把你认定为爬虫了,根本没给你展示你的行为的机会。依据我的经验,它是直接提取的浏览器驱动的指纹特征,比如常用的驱动有chromedriver,这种方式基本上我还没找到一个好的应对方式。为了验证我的想法,我选择了使用geckodriver(Releases · mozilla/geckodriver · GitHub)来驱动firefox(没有使用firefox自带的webdriver,因为自带的webdriver它已经被收集指纹了),第一次返回的结果的意思是:不能识别该浏览器。从这点可以看出它有一个可识别的指纹特征列表,不在次范围内的都不能访问,在此范围内的,只有是合法的(非webdriver驱动的)才能访问。另外,它一旦发现你用的webdriver驱动,那么它就会把你的IP暂时列入黑名单,这时候就算你手动输入网址都不能访问,但是过一段时间又可以访问了,我这边测试的情况就是这样。以前我也做过类似的研究,可以看看我提的问题(怎么识别自动化的Web爬虫(比如采用selenium或者phantomjs)? - Python)。当时我们组做了两个解决方案,一个就是使用它未采集的webdriver来驱动浏览器,这里似乎不行,因为未采集的它都一律不给通过。另外一个方法就是读它的js源码了,然后挨着步骤调试,这种方法需要很深的js功底。说了这么多,很惭愧我还是没有找到有效采集目标网站的方法
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    昨天 08:45
  • 签到天数: 1806 天

    连续签到: 5 天

    [LV.Master]测试大本营

    3#
    发表于 2017-11-10 16:41:10 | 只看该作者
    emmmmmm....楼主和1楼是同一个人的小号吗?
    好奇怪,代码只贴了一个import time  
    然后1楼就恢复了这么多。。。。。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 03:56 , Processed in 0.071143 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表