2015-10-16 2 views
0

В те дни я делаю паука с помощью Scrapy в Python. Это простой класс пауков, который делает простой синтаксический анализ некоторого поля на странице 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)) 

проходящего URL, таким образом

for any_url in self.url_to_scrape: 
    yield scrapy.Request(any_url.url, callback=self.parse_page) 

Он хорошо работает с ограниченным числом url like 3000.

Но если я попытаюсь сделать тест, и он нашел около 32532 url для очистки. В выходном файле JSON я нашел только около 3000 url scraped.

Моя функция отзыва это сам:

yield scrapy.Request(any_url.url, callback=self.parse_page) 

Таким образом, вопрос, есть некоторый предел памяти для элементов Scrapy?

+1

Theres полный раздел руководства по использованию пределов использования памяти. Проблема в том, что при вызове случайного URL-адреса вы можете найти кого-то, у которого есть файл 1gb .., который может сильно нарушить ваш сервер, который тянет. У вас включено расширение использования памяти (см. Http://doc.scrapy.org/en/latest/topics/extensions.html#topics-extensions-ref-memusage) – Jmons

+0

@JamesTaylor Итак, мне нужно увеличить MEMUSAGE_LIMIT_MB и установить большое значение, чтобы не остановить программу? – RedVelvet

+1

Если вы достигли предела памяти, Scrapy/Python выдаст исключение, указывающее на это. Если это так, определите, почему он использует память, то есть 35 000 запросов - это не так много, чтобы сидеть там (они не такие большие). Scrapy не должен удерживать объекты ответа или предметы намного дольше, чем требуется для их обработки. – Rejected

ответ

0

Нет, если вы не указали CLOSESPIDER_ITEMCOUNT в своих настройках.

Возможно, в ваших запросах можно найти дубликаты, пожалуйста, проверьте, содержит ли эта статистика что-то вроде dupefilter/filtered на ваших журналах.