Абстрактный логический вопрос, скрап - перебрасывай и передавай данные на другой сайт в одном проекте - PullRequest
0 голосов
/ 01 февраля 2019

Впервые в медицине.<72 часаНемного смущен. </p>

У меня есть два сайта, которые я хочу удалить.Сайт1, Сайт2.Успешно очистил сайт 1 и извлек данные, которые я хочу использовать, чтобы начать очистку сайта 2 только после того, как сайт 1 был очищен.

Простой пример - это что-то вроде «Получить все CAR-MODEL-YR-PRICE из автомобилей»..for.sale (SITE1) Используйте эти данные для сравнения на ebay.com (SITE2) ИСПОЛЬЗОВАНИЯ SITE1 CAR-MODEL-YR-PRICE

того, что происходит в моих начальных следах.Я начинаю очищать оба сайта одновременно (кажется), но site2 ничего не возвращает, так как кажется, что у него нет данных site1

Нужно ли мне запускать 2 паука

Я посмотрел скрапдокументация,

def parse()
 ...scrape site1
 ...format the data
 yield (... , callback=parse2)

def parse2()
 ...with data from site1
 ...scrap site2

но, похоже, ничего не работает.(непонимание или непонимание того, как все это работает)

Может кто-нибудь опубликовать шаблон хорошего начала, рассказывающего о том, как создать сайт 1, ТО и сайт сбора данных 2

.

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Простой, но простой конвейер должен был бы создать 2 паука внутри одного проекта (для этого проверьте команду genspider).

Сделав это и успешно внедрив первого паука, вам необходимо сохранить данные.Используйте командную строку для этого или просто встроенные библиотеки Python для хранения ваших данных по своему усмотрению (json, csv, ...).

Наконец, используйте Python для чтения файла в вашем пауке 2, и теперь у вас есть данные внутри вашего второго паука, и вы можете делать с ним все, что пожелаете.]

PS Это простои вроде наивный подход, но он просто работает!Если вы хотите сделать что-то более сложное, например, выполнить все внутри одного скрипта Python, вы можете проверить эту ссылку на лучшие практики Scrapy: http://doc.scrapy.org/en/latest/topics/practices.html. Но как новичок (<72 часа) я бы не стал беспокоитьсяСлишком много. </p>

PSS Удачи, соскребая мир!Но не перегревайте свои серверы;)!

0 голосов
/ 01 февраля 2019

У вас есть meta ключ, который вы можете передавать на запросы

def parse()
 ...scrape site1
 ...format the data
 some_data = {'hello': "man"}
 yield (... , callback=parse2, meta={'data': some_data })

def parse2()
 ...with data from site1
 some_data = response.meta['data']
 ...scrap site2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...