【问题标题】:How to load urls into Scrapy one by one如何将 url 一个一个加载到 Scrapy 中
【发布时间】:2013-07-08 01:44:08
【问题描述】:
我正在构建一个需要抓取超过 500 万个 url 的爬虫。目前我正在使用以下方式将文件中的所有 url 加载到 start_urls 列表中,我发现这占用了太多内存。
self.start_urls = get_list_from_file(file_path)
所以我想知道是否有一种方法可以将网址一个一个地加载到内存中,这样我就可以保持较低的内存成本。
【问题讨论】:
标签:
python
web-scraping
scrapy
【解决方案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 函数用作生成器。
希望对您有所帮助。