RandomUserAgentMiddleware 执行问题
来源:8-5 通过downloadmiddleware随机更换user-agent - 2
qq_光阴的尾巴_03454093
2017-09-22
class RandomUserAgentMiddleware(object):
def __init__(self, crawler):
super(RandomUserAgentMiddleware, self).__init__()
self.ua = UserAgent()
self.per_proxy = crawler.settings.get('RANDOM_UA_PER_PROXY', False)
self.ua_type = crawler.settings.get('RANDOM_UA_TYPE', 'random')
self.proxy2ua = {}
@classmethod
def from_crawler(cls, crawler):
return cls(crawler)
老师您好,这里我们重写了 __init__方法,from_crawler这个函数对这个类进行实例化的时候知道需要传递crawler参数,那么其他的地方怎么是知道也需要传递这个参数呢(因为我们如果不重写是不需要传参数的)?或者根本没有其他地方需要对这个类进行实例化?默认情况下这个类是不需要被实例化的吗?谢谢
写回答
1回答
-
这个是由scrapy框架调用的 参数会传递一个crawler 所以函数定义是固定的 但是函数内部具体的逻辑是由自己来写的
032017-12-04
相似问题