V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
peili
V2EX  ›  程序员

美团网 web 端的反爬策略到底是怎么样的,一脸懵逼

  •  
  •   peili · 2018-05-04 18:52:28 +08:00 · 4271 次点击
    这是一个创建于 2420 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前几年爬过美团记得那时候挺简单的,这两天重新做的时候受到了很大的挫败感哈哈,现在结果是 IP 被封请求都返回一个 403 页面,还没有好的解决办法,尝试了更换 IP 代理也不行,请教下有经验的同学,下面踩坑的过程写的有点啰嗦。

    踩坑过程如下:

    • 1.刚开始爬美食板块用比较熟悉的 beautifulsoup 解析不到东西,看了下是正文是在 js 里面的,转而用正则解决了。
    • 2.美食板块完了紧接着弄其他模块例如“休闲娱乐”,但是返回的内容正则死活匹配不到,看了下返回结果有服务器拒绝请求的字样,这个时候我也不确定是 header 少了东西还是 IP 被 ban 了,然后尝试把新的 cookie 加到 header 重新试了下返回正常,但是请求了几次又拒绝服务了。

    • 3.好吧估计是 IP 被 ban 了,立马在请求里加了 IP 代理,通过返回的状态码是不是 200 判断是否请求成功,然而正则还是匹配不到任何内容,看了下请求之后当前 url 是一个"www.meituan.com/error/403", 这就很尴尬了,美团并没有直接封禁 IP 不让请求,而是专门做了一个返回状态是 200 的 403 界面,尝试更换了数百个代理 IP 仍然如此( IP 是正常能用的,爬其他网站都还在用)。

    • 4.难道是 header 里面的 user-agent 有问题?我手动打开我的 chrome 浏览器进入“休闲娱乐”这个板块是能正常浏览,于是把现在浏览器的 user-agent 复制到请求的 header 里面重新试了下,OK 能返回正常了,然而还没高兴两分钟,请求了几次之后又返回 403 了,这时候我再去手动打开 chrome 浏览器进入这个页面发现也展示 403 界面了
    • 5.放弃 requests 请求,转而使用 selenium,因为 chrome 已经用不了了,于是下载了 phantomJS 和 edge 浏览器驱动,刚开始都返回正常,正则可以匹配到我想要的结果,但是请求了几次之后 phantomJS 和 edge 也被干掉了,此时已经万念俱灰不知如何是好。因此来请教

    cocoakekeyu
        1
    cocoakekeyu  
       2018-05-04 20:11:25 +08:00
    一定要私聊, 美团工程师会看到的
    jadec0der
        2
    jadec0der  
       2018-05-04 21:25:56 +08:00 via Android
    现在反爬都搞深度学习了,时灵时不灵也正常
    peili
        3
    peili  
    OP
       2018-05-05 01:33:36 +08:00
    @cocoakekeyu 哦不好意思感谢提醒,第一次来这个社区,不太了解
    peili
        4
    peili  
    OP
       2018-05-05 01:34:15 +08:00
    @jadec0der 大概是了,超出我的能力范围了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2982 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 14:29 · PVG 22:29 · LAX 06:29 · JFK 09:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.