推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
wc110302
V2EX  ›  Python

最近准备爬取的一个网站遇到的瓶颈

  •  
  •   wc110302 · Sep 27, 2018 · 6861 views
    This topic created in 2961 days ago, the information mentioned may be changed or developed.
    发现该网站似乎是用了 distil networks 的反爬虫服务, 如果需要拿到数据就必须带上 cookie,不带 cookie 的请求都会被直接返回 sessionStorage.setItem('distil_referrer', document.referrer); 而这个 cookie 的失效时间又很快,只有 5 分钟左右,并且用的次数多了,大概四五次也会失效,并且我使用 fiddler 跟踪,拿到所有 cookie 参数后,利用这个 cookie 依然无法拿到数据,请问广大社友们有遇见过这种情况吗?
    38 replies  •  2019-12-21 13:57:07 +08:00
    wc110302
    wc110302
    OP
    Sep 27, 2018
    1
    https://i.loli.net/2018/09/27/5bac44a20e9c0.png 这是一直关于 distil networks 的 fiddler 跟踪图片 p 参数记录的是浏览器指纹 我现在多次使用这个 p 参数 是能拿到返回值的 但是这个返回值拿不到正确的数据
    ericgui
    ericgui
    Sep 27, 2018
    2
    @wc110302 做爬虫确实都很费劲的,毕竟不是 debug,有报错信息什么的
    nooper
    nooper
    Sep 27, 2018 via iPad
    3
    Webdriver hub
    exip
    exip
    Sep 27, 2018 via Android
    4
    是不漏了哪个参数。祝你好运。
    wc110302
    wc110302
    OP
    Sep 27, 2018
    5
    @ericgui 是挺费劲的 啥都要学一点 js 要学 接口要会做 app 端 wechat 端 pc 端得会抓包 偶尔还得做个 GUI 什么的
    vegetta
    vegetta
    Sep 27, 2018
    6
    selenium 试下? 虽然效率不高
    wc110302
    wc110302
    OP
    Sep 27, 2018
    7
    @nooper 是尝试过的 但是效率太低了 不符合预期 并且并发的情况也不太理想
    wc110302
    wc110302
    OP
    Sep 27, 2018
    8
    @exip 参数应该没有遗漏 我在使用某一个 ip 拿到所有 cookie 之后 如果我使用这个 ip 真实地用浏览器访问了该网站 那么我之前拿到的那个 cookie 就能使用一段时间 具体原理我也不太明白 也许是他们记录在了服务器上
    wc110302
    wc110302
    OP
    Sep 27, 2018
    9
    @vegetta selenium 就是效率太低了 并且该网站会检测无头 无 js 这样也加大了服务器的负载
    huaerxiela
    huaerxiela
    Sep 27, 2018
    10
    企鹅 base64:MTk3NDMwNDU5OA==
    dapengzhao
    dapengzhao
    Sep 27, 2018
    11
    请问是什么网站方便说下吗?
    qwertty01
    qwertty01
    Sep 27, 2018
    12
    这没办法。除了使用动态浏览器,就是得分析网站的 JS 了。
    richieboy
    richieboy
    Sep 27, 2018
    13
    cookies 是 js 动态生成的,你光复制不行吧
    onexpiece
    onexpiece
    Sep 27, 2018
    14
    请问什么网站方便说下?
    ctro15547
    ctro15547
    Sep 27, 2018
    15
    用 selenium 生产 cookie 存着,爬虫去拿 cookie,超时或者超次数就换一个,这样多线程几个 seleniumdriver 来生产的 cookie,效率应该比只用 selenium 好不少
    wc110302
    wc110302
    OP
    Sep 27, 2018
    16
    @richieboy cookie 是动态生成的没错 我用相同的 P 参数每次从 response headers 里面拿到的 cookie 都不一样 然后我将这些 cookie 拼接之后和正常生成的 cookie 对比了一下 是一模一样的 但是用这个 cookie 就无法拿到数据 而真实的 cookie 就可以 并且有趣的是 我如果用该 ip 去真实访问了这个网站 这个 cookie (我自己 requests 伪造生成的)也可以用了
    jtwor
    jtwor
    Sep 27, 2018
    17
    meituan 好像也是这样 cookie 还好弄 只是 5 分钟后触发防爬虫的原因不太确定 奥塞头:(
    nooper
    nooper
    Sep 27, 2018 via Android
    18
    加我 qq 收费解决,3655 o4o29
    handan
    handan
    Sep 27, 2018
    19
    问一下 ,是哪个网站??
    yy461530593
    yy461530593
    Sep 27, 2018
    20
    先用浏览器正常请求操作,抓包看请求过程,模拟这个请求过程,如果浏览器操作也是会更新 cookies,那代码上也只能跟着更新
    valord577
    valord577
    Sep 27, 2018
    22
    我这里有个思路 selenium + headless chrome 每 3 分钟打开网页 从 chrome 拿到 cookie

    https://github.com/valord577/taobaoke

    这个虽然是用 java 写的 但是封装 selenium 的思路 python 也是通用的
    wc110302
    wc110302
    OP
    Sep 27, 2018
    23
    @valord577 感谢分享。 但是 selenium 效率确实是太低了 并且消耗资源较多 抓取数据的量又比较大 单一个 cookie 只能使用 4-5 次 所以暂时不考虑走 selenium 实在不行的话就只能走 app 端了
    xiaozizayang
    xiaozizayang
    Sep 28, 2018
    24
    试试这个? pyppeteer
    wc110302
    wc110302
    OP
    Sep 28, 2018
    25
    @xiaozizayang 尝试了一下--! 会被反爬虫识别 出现验证码
    Pardon Our Interruption
    ['//cdn.distilnetworks.com/images/anomaly-detected.png']
    angkee
    angkee
    Oct 7, 2018
    26
    老哥,我也遇到了这个问题,能不能加个微信聊下
    wc110302
    wc110302
    OP
    Oct 8, 2018
    27
    @angkee 可以啊 留下你的 v
    locoz
    locoz
    Oct 8, 2018
    28
    试试 APP ?
    wc110302
    wc110302
    OP
    Oct 8, 2018
    29
    @locoz 现在是在尝试 app 了,pc 端的搞不定--!
    stephen2018
    stephen2018
    Oct 16, 2018 via Android
    30
    我最近遇到用 selenium 被网站识别出来,我设置了 useragent,加了代理,依然被识别出来,有点头疼,可以交流下吗
    wc110302
    wc110302
    OP
    Oct 17, 2018❤️1
    31
    @stephen2018 可以尝试下 pyqt
    RAKU318
    RAKU318
    Nov 28, 2018
    32
    想问下题主搞定了吗?
    wc110302
    wc110302
    OP
    Nov 29, 2018
    33
    @RAKU318 已经搞定了 模拟生成 p 参数即可
    lzh414895156
    lzh414895156
    Jan 2, 2019
    34
    @wc110302 请问题主现在还可以抓到数据吗?可以加个微信交流下吗?
    wc110302
    wc110302
    OP
    Jan 3, 2019
    35
    @lzh414895156 留下你的联系方式咯
    lzh414895156
    lzh414895156
    Jan 3, 2019
    36
    @wc110302 qq414895156
    luzhizheng
    luzhizheng
    Dec 6, 2019
    37
    楼主加我 QQ!,我也遇到这个问题啦!! bs64:OTkzMjgyMTM4
    luzhizheng
    luzhizheng
    Dec 21, 2019
    38
    这楼主是一个搞外包的,大家不要给骗了,加了 QQ 以后一直在忽悠,没两句就开始装逼,然后要我搞外包.
    技术问题一个都不回答,问什么都说很简单自己搞,要不然就找我外包,真是没见过这种人,一点想探讨的精神都没有,还跟我装起逼来,说多了就开始骂我菜鸡,菜鸟,真的是给点阳光就灿烂,懂一点就开始装逼,你爸妈没有教过你做人的道理吗?真是悲哀
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5316 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 77ms · UTC 03:35 · PVG 11:35 · LAX 19:35 · JFK 22:35
    ♥ Do have faith in what you're doing.