scrapy崩溃我试图刮大文件列表网址

时间:2018-03-17 23:26:17

标签: python scrapy scrapy-spider

我需要抓取大型列表网址,这是我对start_urls的实际变量:

start_urls = [url.strip() for url in open('urls.txt','r').readlines()]

当我执行crowl系统杀死scrapy以查找丢失的内存时,是否可以对scrapy进行流文件?没有加载内存上的所有网址?

1 个答案:

答案 0 :(得分:2)

错误#1:<meta HTTP-EQUIV="Expires" CONTENT="-1"> 。文件可以是任意大的,此操作将完全读入内存。既然你正在迭代它,删除.readlines()是绝对安全的:

readlines()

错误#2:使用list而不是迭代器。列表仍然完全存储在内存中;迭代器按需使用(只存储一个元素)。如果您不多次迭代此列表,则更改为迭代器应该是安全的:

start_urls = [url.strip() for url in open('urls.txt','r')]