Веб-выскабливание по тегу при переполнении стека
Я хотел бы сделать веб-скребок на этом сайте ( stackoverflow.com
), мне было интересно, есть ли API
или какой-то другой инструмент, который можно использовать с Python, чтобы получить все комментарии, содержащие определенный тег.
Например, как я могу получить все сообщения и комментарии с 10/01/2019 to 01/20/2019
с тегом python?


Ответы - Веб-выскабливание по тегу при переполнении стека / Web scraping by tag on stack overflow

10.07.2019 09:34:17
Есть подробный взгляд на https://api.stackexchange.com/docs/
Вы можете получить все вопросы, от даты начала до даты окончания с определенным тегом, используя вопросы метода. Вам нужно передать определенный тег в параметр tagged
.
Вот формат URL для этого:
https://api.stackexchange.com/2.2/questions?fromdate={start_date}&todate={end_date}&order=desc&sort=activity&tagged={tag}&site=stackoverflow
Например, приведенная ниже ссылка возвращает все вопросы с 1 июля 2019 года по 5 июля 2019 года с тегом python
:
https://api.stackexchange.com/2.2/questions?fromdate=1561939200&todate=1562284800&order=desc&sort=activity&tagged=python&site=stackoverflow
Для получения дополнительной информации о том, как дата была отформатирована в приведенном выше URL-адресе, вы можете посмотреть на даты .
Теперь, когда у вас есть question_id
, вы можете использовать метод questions/{ids}/answers, чтобы получить все ответы на этот вопрос от даты начала до даты окончания.
Вот формат URL для этого:
https://api.stackexchange.com/2.2/questions/{question_id}/answers?fromdate={start_date}&todate={end_date}&order=desc&sort=activity&site=stackoverflow
Например, приведенная ниже ссылка возвращает все ответы с 1 января 2019 года по 1 июля 2019 года на вопрос с question_id 37181281:
https://api.stackexchange.com/2.2/questions/37181281/answers?fromdate=1546300800&todate=1561939200&order=desc&sort=activity&site=stackoverflow
Теперь у вас в основном есть все сообщения (вопросы и ответы) от даты начала до даты окончания с определенным тегом.
Поскольку у вас есть question_id
и answer_id
для сообщений, вы можете использовать метод questions / {ids} / comments и метод answers/{ids} / comments для получения комментариев к этим сообщениям.
