Это было решено до некоторой степени здесь и здесь
Но я хотел бы спросить здесь, прежде чем делать что-либо из того, что предлагается там, потому что я неМне действительно нравится любой из подходов.
Так что, в принципе, я пытаюсь отказаться от игр Steam. Как вы, возможно, знаете, в Steam есть ссылка, где вы можете получить доступ ко всем обзорам игры, например:
https://steamcommunity.com/app/730/reviews/?browsefilter=toprated&snr=1_5_100010_
Здесь вы можете игнорировать параметры запросов snr и browsefilter.
Во всяком случае, я создал одного паука, который будет сканировать список игр здесь и работает довольно хорошо:
https://store.steampowered.com/search/?sort_by=Released_DESC
Но теперь для каждой игры, которую я хочучтобы получить все отзывы.
Первоначально я создал нового Паука, который имеет дело со свитком инфинте на странице, которая содержит полный набор обзоров для игры, но, очевидно, что пауку нужен URL, где живут эти обзоры.
Итак, что я сейчас делаю, так это собираю все страницы игр и сохраняю URL с обзорами для каждой игры в текстовом файле, который затем передается в качестве параметра второму пауку. Но мне это не нравится, потому что это вынуждает меня сделать двухэтапный процесс, и, кроме того, мне нужно каким-то образом сопоставить результаты второго паука с результатами первого (эти обзоры принадлежат этой игре и т. Д.)
Итак, мои вопросы:
Было бы лучше отправить результаты удаления страницы игры (и, следовательно, URL со всеми отзывами) второму пауку, илихотя бы URL, а затем получить все отзывы для каждой игры, используя второго паука? Это будет O (N * M) с точки зрения производительности, т.е. N игр и M обзоров за игру, может быть, просто из-за этого иметь 2 паука стоит ... мыслей?
- Могу ли я на самом деле вызвать Паука из другого Паука? Из того, что я прочитал в документации по Scrapy, это не похоже на это. Я, вероятно, могу перенести все на одного паука, но будет выглядеть ужасно и не будет придерживаться принципа единственной ответственности ...