编辑:基于具体要求(对于每个请求或之后新的IP Ñ请求),把适当的呼叫到
set_new_ip在
process_request中间件的方法。但是请注意,对
set_new_ip函数的调用不必始终确保新的IP(存在指向FAQ的链接以及相关说明)。
EDIT2:具有
ProxyMiddleware类的模块如下所示:
from stem import Signalfrom stem.control import Controllerdef _set_new_ip(): with Controller.from_port(port=9051) as controller: controller.authenticate(password='tor_password') controller.signal(Signal.NEWNYM)class ProxyMiddleware(object): def process_request(self, request, spider): _set_new_ip() request.meta['proxy'] = 'http://127.0.0.1:8118' spider.log('Proxy : %s' % request.meta['proxy'])


