0
在那些日子裏,我正在Python中使用Scrapy製作Spider。 它基本上是一個簡單的蜘蛛類,它可以簡單地解析Html頁面中的某個字段。 我不使用starts_url [] Scrapy場,但我使用的是個性化列表如下:Scrapy有一個項目限制?
class start_urls_mod():
def __init__(self, url, data):
self.url=url
self.data=data
#Defined in the class:
url_to_scrape = []
#Populated in the body in this way
self.url_to_scrape.append(start_urls_mod(url_found), str(data_found))
網址傳遞這樣
for any_url in self.url_to_scrape:
yield scrapy.Request(any_url.url, callback=self.parse_page)
它的工作原理與良好的數量有限網址像3000.
但是,如果我嘗試做一個測試,它發現約32532 url刮。 在JSON輸出文件中,我發現只有約3000個URL被刮掉。
我的函數調用它的自我:
yield scrapy.Request(any_url.url, callback=self.parse_page)
所以現在的問題是,沒有爲Scrapy項目的一些內存限制?
Theres手冊中關於內存使用限制的全部內容。問題是,當調用隨機網址時,你可能會發現有人託管1GB文件..這可能會嚴重破壞你的服務器拉動。你是否開啓了內存使用擴展(請參閱http://doc.scrapy.org/en/latest/topics/extensions.html#topics-extensions-ref-memusage) – Jmons
@JamesTaylor所以我需要增加MEMUSAGE_LIMIT_MB並設置一個很高的值,以不停止該程序? – RedVelvet
如果你遇到內存限制,Scrapy/Python會拋出一個異常來表明這一點。如果是這樣,確定爲什麼它使用的內存是35k請求並不是很多人坐在那裏(它們並不是那麼大)。 Scrapy不應該持續響應對象或項目的時間長於處理它們所需的時間。 – Rejected