1
xiaogui 2015-03-24 12:20:09 +08:00 1
抓的频率太快了吧
|
2
jarlyyn 2015-03-24 12:26:15 +08:00 1
没用python写过爬虫。
但是伪装浏览器, 首先是不是考虑有cookie? 其次是否考虑支持js的库? 第三是不是踩到了陷阱链接? 当然频率也是个问题。 |
3
jarlyyn 2015-03-24 12:28:52 +08:00 1
对了,还有reference_url?
我记得当时是用chrome开network页,然后把所有的header都copy了一遍。 |
4
messense 2015-03-24 12:37:34 +08:00 1
用 requests 吧..... urllib2 太难用了。
豆瓣反爬虫机制比较厉害,用很多代理 ip 去抓比较有效。ban 了就换代理。 |
5
terrychang 2015-03-24 12:40:46 +08:00 1
带上cookie看看
|
6
alangz 2015-03-24 12:43:00 +08:00 1
我抓取豆瓣小组内容的时候也是403,但是添加了UserAgent之后就可以了。不知道你为何不可以,当然用的时java。
|
7
dedewei OP @jarlyyn 试过把所有header除了cookie都copy一遍,也不行。添加了Referer也还是不行。
小白,现在目标是先把脚本运行起来。所以cookie等知识打算一边学一边补。非常感谢你的回答。 |
8
dedewei OP @terrychang 非常感谢,带上cookie运行成功了
|
10
dedewei OP @terrychang 运行了两分钟.....又403了.....
|
11
dedewei OP |
13
dedewei OP @xiaogui 会不会是之前ip被屏蔽,等了很久,添加cookie再试的时候刚好解封了,所以才运行了几分钟? 频率是设置爬取的时间间隔?爬一个网页等5秒这样子?我试试。
|
17
terrychang 2015-03-24 13:22:49 +08:00 1
不知道你带的是不是登录会员的cookie。
登录你的豆瓣帐号,然后用firebug导出你的cookie试试。 |
18
lerry 2015-03-24 13:33:27 +08:00 1
既然是伪装浏览器,就要尽可能的像浏览器一样
使用 requests.Session 把浏览器的headers都带上,能应付大部分网站,有的要有Referer,有的要js执行了才行,就用 phantomjs 理论上爬虫是防不住的,顶多是会限制频率罢了,这时侯你可以找一堆匿名代理 |
19
hp19890515 2015-03-24 13:47:23 +08:00 1
之前做了个简单的爬虫爬大众点评的商户,也有这种情况,试了几次之后知道是频率的问题,于是每次403的时候就休息一会儿,每隔2分钟再尝试,等不403的时候就又继续运行了
|
20
liyaoxinchifan 2015-03-24 13:52:22 +08:00 1
多ip才是王道
|
21
em70 2015-03-24 13:54:27 +08:00 2
豆瓣早就用频率监控了,经过测试,一分钟40次是临界点,抓一个等1秒就肯定没问题
|
22
fork3rt 2015-03-24 13:58:57 +08:00 1
为什么不使用 requests + beautifulsoup ?
|
23
vjnjc 2015-03-24 14:11:57 +08:00
挺好玩的,楼主你的程序借我用用啊,据说豆瓣里有很多隐藏的美女,顺便学学python ^^
|
24
caoz 2015-03-24 16:28:37 +08:00 1
使用豆瓣的 API (http://developers.douban.com/wiki/?title=photo_v2), 使用豆瓣客户端用的 apikey, 怎么抓也不会被封~
e.g. http://api.douban.com/v2/group/taotaopaoxiao/topics?alt=json&apikey=08f332d3675ca9d71ad9987a3615fd85 |
25
happywowwow 2015-03-24 16:37:56 +08:00 1
|
26
muyi 2015-03-24 17:06:58 +08:00 via Android 1
模拟容易造成IP被封,如楼上所提到的,用官方客户端的apikey,使用api来爬
|
27
AnyOfYou 2015-03-24 17:12:41 +08:00 1
http://doc.scrapy.org/en/0.24/topics/practices.html#bans
Scrapy 的文档中有一点关于如何防治爬虫被 Ban 的方法: rotate your user agent from a pool of well-known ones from browsers (google around to get a list of them) disable cookies (see COOKIES_ENABLED) as some sites may use cookies to spot bot behaviour use download delays (2 or higher). See DOWNLOAD_DELAY setting. if possible, use Google cache to fetch pages, instead of hitting the sites directly use a pool of rotating IPs. For example, the free Tor project or paid services like ProxyMesh use a highly distributed downloader that circumvents bans internally, so you can just focus on parsing clean pages. One example of such downloaders is Crawlera |
28
justlikemaki 2015-03-24 17:34:46 +08:00 1
..我遇到过网站故意返回错误代码,然后还返回页面代码的。
|
29
darmody 2015-03-24 18:49:09 +08:00 2
看你的代码没有加延时之类的东西,估计是抓取频率的问题
|
30
aliao0019 2015-03-25 00:39:38 +08:00 via iPad 1
注意豆瓣的 header 里面的 bid
|
32
dedewei OP @terrychang 没看懂,不过谢谢,以后遇到再试试
|
35
dedewei OP @happywowwow 哈哈哈〜,提供很好的素材,这就爬去!!!!!!!!!!
|
38
penjianfeng 2015-03-25 10:00:41 +08:00
@happywowwow 进去看了下,终于明白为何以前他们说douban才是大黄了-_-||
|
39
zjuster 2015-03-25 10:52:19 +08:00
豆瓣的反爬虫机制都是被你们逼的..haha 请不要误会,我并没有恶意..
|