Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scrapy 如何将SitemapSpider收集的CSV文件的链接提供给第二个spider,即CSVFeedSpider_Scrapy_Scrapy Spider - Fatal编程技术网

Scrapy 如何将SitemapSpider收集的CSV文件的链接提供给第二个spider,即CSVFeedSpider

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这样的文档驱动的数据库来说

我有一个网站地图蜘蛛,可以收集链接到csv文件。我想使用csv蜘蛛来爬过这些链接。如何将一个spider的输出输入到另一个spider?

请参见以下示例:


要将其用于本地文件,只需使用文件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