Ограничить количество найденных предметов с помощью скрапа - PullRequest
1 голос
/ 02 декабря 2019

Прежде всего я хотел бы отметить, что я студент и у меня мало знаний в этой области.

Я пытаюсь выполнить одно упражнение на 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...