首页   注册   登录
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
wc110302
V2EX  ›  Python

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

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

    https://github.com/valord577/taobaoke

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