爬豆瓣相册遇到 403,伪装浏览器不成功,呼叫总部...

2015-03-24 12:02:11 +08:00
 dedewei
google得到伪装浏览器有两种选择:
第一种: https://gist.github.com/jianjiao2021/2c34d12dc2b327e62966


第二种: https://gist.github.com/jianjiao2021/05f9bbed66e79c24c9dc


还是返回403,请问哪里出错了?


全部代码: https://gist.github.com/jianjiao2021/7a8069afab52b12b0c76
11739 次点击
所在节点    Python
39 条回复
xiaogui
2015-03-24 12:20:09 +08:00
抓的频率太快了吧
jarlyyn
2015-03-24 12:26:15 +08:00
没用python写过爬虫。

但是伪装浏览器,

首先是不是考虑有cookie?

其次是否考虑支持js的库?

第三是不是踩到了陷阱链接?

当然频率也是个问题。
jarlyyn
2015-03-24 12:28:52 +08:00
对了,还有reference_url?

我记得当时是用chrome开network页,然后把所有的header都copy了一遍。
messense
2015-03-24 12:37:34 +08:00
用 requests 吧..... urllib2 太难用了。

豆瓣反爬虫机制比较厉害,用很多代理 ip 去抓比较有效。ban 了就换代理。
terrychang
2015-03-24 12:40:46 +08:00
带上cookie看看
alangz
2015-03-24 12:43:00 +08:00
我抓取豆瓣小组内容的时候也是403,但是添加了UserAgent之后就可以了。不知道你为何不可以,当然用的时java。
dedewei
2015-03-24 12:48:13 +08:00
@jarlyyn 试过把所有header除了cookie都copy一遍,也不行。添加了Referer也还是不行。

小白,现在目标是先把脚本运行起来。所以cookie等知识打算一边学一边补。非常感谢你的回答。
dedewei
2015-03-24 12:51:41 +08:00
@terrychang 非常感谢,带上cookie运行成功了
dedewei
2015-03-24 12:53:18 +08:00
@messense 谢谢给的建议
dedewei
2015-03-24 12:57:02 +08:00
@terrychang 运行了两分钟.....又403了.....
dedewei
2015-03-24 12:58:56 +08:00
@terrychang
@messense
@jarlyyn 我想问的是,是不是如果上面模拟浏览器的步骤不出错,就肯定能继续爬?还是说上面即使模拟浏览器成功了,依然有其他方式导致403?
xiaogui
2015-03-24 13:00:39 +08:00
@dedewei “运行了两分钟.....又403了.....”主要是频率了吧
dedewei
2015-03-24 13:06:03 +08:00
@xiaogui 会不会是之前ip被屏蔽,等了很久,添加cookie再试的时候刚好解封了,所以才运行了几分钟? 频率是设置爬取的时间间隔?爬一个网页等5秒这样子?我试试。
xiaogui
2015-03-24 13:07:37 +08:00
@dedewei 刚开始封,都是比如封你几分钟,但是抓取频率过高的话,这个时间会指树上升的。
dedewei
2015-03-24 13:09:28 +08:00
@dedewei 尝试了下,直接urllib2.urlopen(url)都返回403,应该不是频率问题吧
dedewei
2015-03-24 13:13:03 +08:00
@xiaogui 我好像理解错你说的频率了?
terrychang
2015-03-24 13:22:49 +08:00
不知道你带的是不是登录会员的cookie。
登录你的豆瓣帐号,然后用firebug导出你的cookie试试。
lerry
2015-03-24 13:33:27 +08:00
既然是伪装浏览器,就要尽可能的像浏览器一样
使用 requests.Session 把浏览器的headers都带上,能应付大部分网站,有的要有Referer,有的要js执行了才行,就用 phantomjs
理论上爬虫是防不住的,顶多是会限制频率罢了,这时侯你可以找一堆匿名代理
hp19890515
2015-03-24 13:47:23 +08:00
之前做了个简单的爬虫爬大众点评的商户,也有这种情况,试了几次之后知道是频率的问题,于是每次403的时候就休息一会儿,每隔2分钟再尝试,等不403的时候就又继续运行了
liyaoxinchifan
2015-03-24 13:52:22 +08:00
多ip才是王道

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/178984

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX