前几年爬过美团记得那时候挺简单的,这两天重新做的时候受到了很大的挫败感哈哈,现在结果是 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 也被干掉了,此时已经万念俱灰不知如何是好。因此来请教
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/452201
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.