Scrapy 如何将SitemapSpider收集的CSV文件的链接提供给第二个spider,即CSVFeedSpider
我有一个网站地图蜘蛛,可以收集链接到csv文件。我想使用csv蜘蛛来爬过这些链接。如何将一个spider的输出输入到另一个spider?请参见以下示例:Scrapy 如何将SitemapSpider收集的CSV文件的链接提供给第二个spider,即CSVFeedSpider,scrapy,scrapy-spider,Scrapy,Scrapy Spider,我有一个网站地图蜘蛛,可以收集链接到csv文件。我想使用csv蜘蛛来爬过这些链接。如何将一个spider的输出输入到另一个spider?请参见以下示例: 要将其用于本地文件,只需使用文件url:file:///home/user/some.csv我现在尝试的是SitemapSpider正在用csv文件的链接填充数据库,而CSVFeedSpider正在从该数据库读取数据。@tylerjw为什么不将所有内容都存储在数据库中并切断csv中间人?对于像mongo或couchdb这样的文档驱动的数据库来说
要将其用于本地文件,只需使用文件url:
file:///home/user/some.csv
我现在尝试的是SitemapSpider正在用csv文件的链接填充数据库,而CSVFeedSpider正在从该数据库读取数据。@tylerjw为什么不将所有内容都存储在数据库中并切断csv中间人?对于像mongo或couchdb这样的文档驱动的数据库来说,如果您没有太多数据,redis是一个超级简单的解决方案!我使用mongo数据库来存储结果。问题是,我想要的csv文件中有比页面列表视图中显示的更具体的数据。我最终找到了CSVAPI的uri参数,因此我甚至不必加载带有链接的页面。
from scrapy.spiders import CSVFeedSpider
from myproject.items import TestItem
class MySpider(CSVFeedSpider):
name = 'example.com'
allowed_domains = ['example.com']
start_urls = ['http://www.example.com/feed.csv']
delimiter = ';'
quotechar = "'"
headers = ['id', 'name', 'description']
def parse_row(self, response, row):
self.logger.info('Hi, this is a row!: %r', row)
item = TestItem()
item['id'] = row['id']
item['name'] = row['name']
item['description'] = row['description']
return item