Scrapy: прекратить слом до определенной даты - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь очистить форум до определенной даты, скажем, 2018-01-01.

Проблема:

Допустим, страница форума - это страница, содержащая список сообщений без даты. Проблема в том, что информация о дате каждого поста существует только на странице поста (в которой отображается фактическое содержание этого поста). Таким образом, я не мог знать дату, прежде чем я фактически очистил каждый пост в списке постов. Я должен сделать еще один запрос, чтобы очистить страницу публикации , чтобы сначала получить информацию о дате, а затем решить, следует ли продолжать следить за страницей страницы форума .

Я ожидаю, что паук будет следить за страницей на форуме нумерации страниц до тех пор, пока не будет удалено сообщение с датой 2018-01-01.

Текущий подход:

Чтобы остановиться после даты 2018-01-01, я создал свойство класса post_cont_dict, чтобы определить, должен ли паук продолжать следовать за страницей форума . Когда дата до 2018-01-01 будет получена со страницы post , паук вытащит ключ . Перед запросом поста , паук сначала проверяет, есть ли у post_cont_dict ключ ( также здесь ) для страницы форума .

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

Вот мой код https://github.com/spacegoing/sentiment_mqd/blob/test/guba_spiders/guba_spiders/spiders/guba_spider.py

1 Ответ

0 голосов
/ 30 октября 2018

Предлагает ли форум возможность сортировки по дате? (Вам может понадобиться что-то вроде селена или всплеска для взаимодействия со страницей, подобной этой) Если форум поддерживает эту функцию, вы можете: 1.) Сортировать по дате 2.) Просмотрите каждое сообщение на форуме и следите за датой 3.) Когда дата наступит до 01-01-2018, вы можете вызвать исключение Close Spider:

https://doc.scrapy.org/en/latest/topics/exceptions.html#closespider

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

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