Python Scrapy - Как записать с 2 разных сайтов одновременно? - PullRequest
1 голос
/ 10 февраля 2020

Мне нужно удалить данные из списка доменов, указанного в Excel; Проблема в том, что мне нужно удалить данные с исходного веб-сайта (например, https://www.lepetitballon.com) и данные с аналогичной технологии (https://www.similartech.com/websites/lepetitballon.com).

Я хочу, чтобы они были удалены одновременно, чтобы я мог получить их и отформатировать их один раз в конце, после этого я просто go перейду к следующему домену.

Теоретически, я должен просто использовать 2 пауки асинхронно с помощью скрапа?

Ответы [ 2 ]

1 голос
/ 10 февраля 2020

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

Теоретически, если по какой-то причине вы ДОЛЖНЫ проанализировать их в том же пауке вы можете просто собрать URL-адреса, которые вы хотите очистить, и на основе базового пути вы можете вызывать различные методы обратного вызова анализатора. При этом я лично не могу придумать причину, почему вы должны это сделать. Даже если у вас будет такая же структура, вы можете просто повторно использовать scrapy.Item классы.

0 голосов
/ 10 февраля 2020

Витая сетевая библиотека используется платформой scrapy для своих внутренних сетевых задач, и scopy предоставляет для обработки одновременных запросов в настройках.

Объяснено здесь: https://docs.scrapy.org/en/latest/topics/settings.html#concurrent -requests

Или вы можете использовать несколько пауков, которые независимы друг от друга, что уже объяснено в документах Scrapy, это может быть то, что вы ищете.

По умолчанию Scrapy запускается один паук на процесс, когда вы запускаете скрап-сканирование. Однако Scrapy поддерживает запуск нескольких пауков для каждого процесса с использованием внутреннего API.

https://docs.scrapy.org/en/latest/topics/practices.html#running -multiple-spiders-in-the-same-process

Что касается эффективности, вы можете выбрать вариант A или B, это действительно зависит от ваших ресурсов и требований, тогда как вариант A может быть полезен для меньших ресурсов с приличной скоростью, или вариант B может быть идеальным для лучшей скорости с более высоким потреблением ресурсов, чем вариант A.

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