首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
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
V2EX  ›  Python

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

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

    https://github.com/valord577/taobaoke

    这个虽然是用 java 写的 但是封装 selenium 的思路 python 也是通用的
        23
    wc110302   2018-09-27 18:17:12 +08:00
    @valord577 感谢分享。 但是 selenium 效率确实是太低了 并且消耗资源较多 抓取数据的量又比较大 单一个 cookie 只能使用 4-5 次 所以暂时不考虑走 selenium 实在不行的话就只能走 app 端了
        24
    xiaozizayang   2018-09-28 09:20:20 +08:00
    试试这个? pyppeteer
        25
    wc110302   2018-09-28 11:56:42 +08:00
    @xiaozizayang 尝试了一下--! 会被反爬虫识别 出现验证码
    Pardon Our Interruption
    ['//cdn.distilnetworks.com/images/anomaly-detected.png']
        26
    angkee   2018-10-07 10:26:56 +08:00
    老哥,我也遇到了这个问题,能不能加个微信聊下
        27
    wc110302   2018-10-08 09:32:21 +08:00
    @angkee 可以啊 留下你的 v
        28
    locoz   2018-10-08 12:24:30 +08:00
    试试 APP ?
        29
    wc110302   2018-10-08 14:31:41 +08:00
    @locoz 现在是在尝试 app 了,pc 端的搞不定--!
        30
    stephen2018   2018-10-16 22:53:14 +08:00 via Android
    我最近遇到用 selenium 被网站识别出来,我设置了 useragent,加了代理,依然被识别出来,有点头疼,可以交流下吗
        31
    wc110302   2018-10-17 16:08:56 +08:00   ♥ 1
    @stephen2018 可以尝试下 pyqt
        32
    RAKU318   2018-11-28 14:21:48 +08:00
    想问下题主搞定了吗?
        33
    wc110302   2018-11-29 09:16:00 +08:00
    @RAKU318 已经搞定了 模拟生成 p 参数即可
        34
    lzh414895156   339 天前
    @wc110302 请问题主现在还可以抓到数据吗?可以加个微信交流下吗?
        35
    wc110302   339 天前
    @lzh414895156 留下你的联系方式咯
        36
    lzh414895156   339 天前
    @wc110302 qq414895156
        37
    luzhizheng   2 天前
    楼主加我 QQ!,我也遇到这个问题啦!! bs64:OTkzMjgyMTM4
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2382 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 24ms · UTC 12:23 · PVG 20:23 · LAX 04:23 · JFK 07:23
    ♥ Do have faith in what you're doing.