如何逐个将URL加载到Scrapy中

时间:2013-07-08 01:44:09

标签: python web-scraping scrapy

我正在构建一个需要抓取超过500万网址的抓取工具。目前我正在使用以下方式将文件中的所有网址加载到start_urls列表中,我发现它占用了太多内存。

self.start_urls = get_list_from_file(file_path)

所以我想知道是否有一种方法可以将url逐个加载到内存中,这样我就可以降低内存成本。

1 个答案:

答案 0 :(得分:1)

当然,在蜘蛛上使用start_requests方法。例如:

def start_requests(self):
    reader = csv.reader(open('urls.csv'))
    for row in reader:
        url = row[0]
        yield Request(url=url)

另外,让get_list_from_file函数作为生成器工作是个好主意。

希望有所帮助。