我希望仅在文件存在时才应用特定设置和download_middlewares(代理)。只有当具有代理列表的.txt存在时,蜘蛛应该使用代理运行,否则,它应该在没有代理的情况下运行,使用默认的IP和端口。
我已尝试过以下操作,但它对我不起作用:
settings.py
import os.path
if os.path.isfile("../proxies.txt"):
BOT_NAME = 'whatever'
SPIDER_MODULES = ['whatever.spiders']
NEWSPIDER_MODULE = 'whatever.spiders'
RETRY_ENABLED = False
REDIRECT_ENABLED = False
DOWNLOAD_TIMEOUT = 15
COOKIES_ENABLED = False
LOG_ENABLED = True
DOWNLOADER_MIDDLEWARES = {
'scrapy.contrib.downloadermiddleware.httpproxy.HttpProxyMiddleware': 110,
'whatever.middlewares.ProxyMiddleware': 100
}
else:
BOT_NAME = 'whatever'
SPIDER_MODULES = ['whatever.spiders']
NEWSPIDER_MODULE = 'whatever.spiders'
DOWNLOADER_MIDDLEWARES = {
}
有没有解决方法呢?
谢谢你们!
答案 0 :(得分:0)
您列出的代码应该。其他代码段中是否有任何错误?