Почему мой анализ выполняет запрос один за другим, а не одновременно? - PullRequest
0 голосов
/ 10 апреля 2020

В основном, у сайта, который я хочу очистить, есть индексная страница, на которой много ссылок. Затем мне нужно go просмотреть каждую из ссылок, чтобы очистить содержимое. Я попробовал два разных метода. Один из них - начать со страницы индекса, затем очистить всю ссылку и сделать обратный вызов. Но это только отправить запрос по одному. Он настолько медленный, так как веб-сайт, который я собираюсь очистить, довольно большой.

class Get_links_on_index_page(scrapy.Spider):
        name = 'GenerateLink'
        start_urls = 'www.indexpage.com'

        def parse(self, response):
            for link in response.css('.vip::attr(href)').getall():
                request = scrapy.Request(link,callback=self.Follow_all_the_link)
                yield request


class Follow_all_the_link(scrapy.Spider):
        def parse(self, response):
             ...........
            yield item

Второй способ - сначала очистить все ссылки, а затем передать его новым паукам start_urls, но пока без разницы.

class Get_links_on_index_page(scrapy.Spider):
    name = 'GenerateLink'
    start_urls = 'www.indexpage.com'

    def parse(self, response):
        for link in response.css('.vip::attr(href)').getall():
            All_link.append(str(link))
        process.crawl(Follow_all_the_link)


class Follow_all_the_link(scrapy.Spider):
    name = 'all_link'
    start_urls = All_link

    def parse(self, response):
         ...........
        yield item

process = CrawlerProcess()
process.crawl(GenerateLink)
process.start()

Файл settings.py выглядит следующим образом:

CONCURRENT_REQUESTS = 32
DOWNLOAD_DELAY = 0.1
CONCURRENT_REQUESTS_PER_DOMAIN = 32
CONCURRENT_REQUESTS_PER_IP = 32

Как выполнить запрос одновременно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...