今天在用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)