http://doc.scrapy.org/en/1.0/topics/practices.html#bans
1. User Agent轮换
2. 禁Cookie
3. 设置大于2s的DOWNLOAD_DELAY
4. 使用Google Cache (不懂)
5. 使用轮换IP(还不会)
6. 使用分布式下载器(不知道scrapy-redis算不算)
User Agent轮换例子
1)新建一个middlewares.py文件,内容如下,文件放在与items.py, settings.py所在的文件夹下。
#!/usr/bin/python
#-*-coding:utf-8-*-
import random
from scrapy.downloadermiddlewares.useragent import UserAgentMiddleware
class RotateUserAgentMiddleware(UserAgentMiddleware):
def __init__(self, user_agent=''):
self.user_agent = user_agent
def process_request(self, request, spider):
ua = random.choice(self.user_agent_list)
if ua:
print ua, '-----------------yyyyyyyyyyyyyyyyyyyyyyyyy'
request.headers.setdefault('User-Agent', ua)
#the default user_agent_list composes c

本文介绍了防止Scrapy爬虫被禁止的几种方法,包括User Agent轮换、禁用Cookie、设置DOWNLOAD_DELAY、利用Google Cache、轮换IP以及可能使用分布式下载器如scrapy-redis。提供了一个User Agent轮换的中间件实现示例。
最低0.47元/天 解锁文章
64万+

被折叠的 条评论
为什么被折叠?



