我需要创建一个用户可配置的Web蜘蛛/爬虫,我正在考虑使用Scrapy.但是,我无法对域进行硬编码并允许使用URL正则表达式:es - 这可以在GUI中进行配置.
我如何(尽可能简单)使用Scrapy创建一个蜘蛛或一组蜘蛛,其中域和允许的URL正则表达式是可动态配置的?例如,我将配置写入文件,蜘蛛以某种方式读取它.
我无法在parse方法中更改spider设置.但绝对必须是一种方式.
例如:
class SomeSpider(BaseSpider):
name = 'mySpider'
allowed_domains = ['example.com']
start_urls = ['http://example.com']
settings.overrides['ITEM_PIPELINES'] = ['myproject.pipelines.FirstPipeline']
print settings['ITEM_PIPELINES'][0]
#printed 'myproject.pipelines.FirstPipeline'
def parse(self, response):
#...some code
settings.overrides['ITEM_PIPELINES'] = ['myproject.pipelines.SecondPipeline']
print settings['ITEM_PIPELINES'][0]
# printed 'myproject.pipelines.SecondPipeline'
item = Myitem()
item['mame'] = 'Name for SecondPipeline'
但!项目将由FirstPipeline处理.新的ITEM_PIPELINES参数不起作用.如何在开始抓取后更改设置?提前致谢!
我有一个带有多个蜘蛛的Scrapy项目以及多个管道.有没有办法告诉蜘蛛A使用管道A等?
我的pipelines.py有多个管道类,每个管道类都做了不同的事情,我希望能够告诉蜘蛛使用特定的管道.
我没有看到任何明显的方法来查看可用的scrapy命令来执行此操作...