Прежде всего я хотел бы отметить, что я студент и у меня мало знаний в этой области.
Я пытаюсь выполнить одно упражнение на Python, используя scrapy для создания веб-сканера.
Работает нормально, но одно из требований заключается в том, что я получаю только первые 10 элементов, которых мне не удается достичь даже с помощью пользовательских настроек:
custom_settings = {
'CONCURRENT_REQUESTS': 1,
'CONCURRENT_ITEMS' :1,
'CLOSESPIDER_PAGECOUNT': 1,
'CLOSESPIDER_ITEMCOUNT': 10
}
Не могли бы вы помочь мненайти решение этой проблемы?
Заранее спасибо!
Код:
import scrapy
from scrapy.crawler import CrawlerProcess
class sjr_spider(scrapy.Spider):
name = "sjr_spider"
start_urls = [
"https://www.scimagojr.com/journalrank.php?year=2017&area=1700"
]
custom_settings = {
'CONCURRENT_REQUESTS': 1,
'CONCURRENT_ITEMS' :1,
'CLOSESPIDER_PAGECOUNT': 1,
'CLOSESPIDER_ITEMCOUNT': 10
}
def parse(self, response):
for journal in response.xpath('//td[@class="tit"]/a/text()'):
yield {
'title': journal.extract()
}
if __name__ == "__main__":
process = CrawlerProcess({
'USER_AGENT': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)',
'DOWNLOAD_HANDLERS': {'s3': None},
'LOG_ENABLED': True,
})
process.crawl(sjr_spider)
process.start()