今天在用Scrapy的时候踩到一个坑,就是在使用用户池模拟浏览器的时候,初始化的时候参数名问题
下面是错误的代码
class UserPool(UserAgentMiddleware):
def __init__(self,user=''):
self.user=user
def process_request(self, request, spider):
thisuser=random.choice(USERPOOL)
print("当前使用的用户是:"+thisuser)
request.headers.setdefault('User-Agent',thisuser)
报了的错误:
AttributeError: 'UserPool' object has no attribute 'user_agent'
把代码user换成user_agent就解决问题了,如下
class UserPool(UserAgentMiddleware):
def __init__(self,user_agent=''):
self.user_agent=user_agent
def process_request(self, request, spider):
thisuser=random.choice(USERPOOL)
print("当前使用的用户是:"+thisuser)
request.headers.setdefault('User-Agent',thisuser)