用Python抓取HTML或

3 投票
1 回答
635 浏览
提问于 2025-04-15 18:46

我常常跟我的微生物学和遗传学学生说,“数据”其实是很杂乱的,而Python可以帮助我们处理这些数据(当然,其他编程语言也可以)。所以这里有一个实际的、基于网络的数据收集练习。

我注意到,在那些声望最高的用户中,有几个人会回答与Python相关的问题。由此自然会产生一些问题:

我想要获取当前在Stack Overflow上(评分最高的)Python高手们的声望和声望增长率,以预测Alex Martelli是否会超过Steven Lott或者Greg Hewgill? 那Konrad Rudolph呢?这是不是很简单,因为这些人的增长都达到了上限?

更一般来说,如果没有API可以查询(我觉得是没有的),有没有其他方法可以通过页面的URL寻找规律,使用Python加载这些页面然后提取HTML内容?我意识到可能没有通用的方法,但我很想知道大家会如何处理这个问题。

编辑:@fitzgeraldsteele:一般来说,SO其实只是一个(人为的)例子。

1 个回答

3

Stack Overflow每个月都会发布一个可以使用的数据包,这个数据包是根据创作共享协议发布的。你可以在这里查看,比如说这个链接(这是众多相关链接中的第一个,每个月至少会有一个)。对于像我这样的分析,比如说我每周的声望和其他用户的比较,这种每月的数据包比直接从网页上抓取数据要好用得多。

如果你想从其他网站抓取数据,而且这样做不违反他们的政策或robots.txt文件,Python是一个很不错的选择。你可以从scrapy开始,这样你就不需要做太多额外的工作了。

撰写回答