通过堆栈上的标记进行Web抓取

时间:2019-07-10 10:00:57

标签: python web-scraping topic-modeling stackexchange-api stackexchange

我想在此网站(stackoverflow.com)上进行网络抓取,我想知道是否有API或其他工具可以与Python一起使用,以获取包含特定标签。

例如,如何使用10/01/2019 to 01/20/2019标签从python获取所有帖子和评论?

1 个答案:

答案 0 :(得分:2)

详细了解https://api.stackexchange.com/docs/

您可以使用questions方法来获取带有特定标签的从开始日期到结束日期的所有问题。您需要将特定标签传递到tagged参数中。

这是该网址的格式:
https://api.stackexchange.com/2.2/questions?fromdate={start_date}&todate={end_date}&order=desc&sort=activity&tagged={tag}&site=stackoverflow

例如,下面的链接以标签python返回2019年7月1日至2019年7月5日的所有问题:
https://api.stackexchange.com/2.2/questions?fromdate=1561939200&todate=1562284800&order=desc&sort=activity&tagged=python&site=stackoverflow

有关上述URL中日期格式的更多信息,请查看dates

现在您有了question_id,则可以使用questions/{ids}/answers方法来获取该问题从开始日期到结束日期的所有答案。

这是该网址的格式:
https://api.stackexchange.com/2.2/questions/{question_id}/answers?fromdate={start_date}&todate={end_date}&order=desc&sort=activity&site=stackoverflow

例如,下面的链接返回从2019年1月1日到2019年7月1日的所有答案,并使用question_id 37181281提问:
https://api.stackexchange.com/2.2/questions/37181281/answers?fromdate=1546300800&todate=1561939200&order=desc&sort=activity&site=stackoverflow

现在,您基本上拥有了从开始日期到结束日期的所有带有特定标签的帖子(问题和答案)。

由于帖子拥有question_idanswer_id,因此可以使用questions/{ids}/comments方法和answers/{ids}/comments方法获取对这些帖子的评论。