【问题标题】:Scraping html with Python or用 Python 抓取 html 或
【发布时间】:2010-02-02 03:27:17
【问题描述】:

我对我的(微生物学和遗传学)学生提出的一个论点是“数据”是/是混乱的,Python 可以帮助解决这个问题(当然其他语言也可以)。因此,这是一种实用的基于网络的数据收集练习。

我注意到在代表最高的用户中,有少数人回答了与 Python 相关的问题。在自然出现的问题中:

我希望恢复 Stack Overflow 上(评分最高的)Pythonistas 的当前代表和代表增加率,以便预测 Alex Martelli 是否或何时超过 Steven LottGreg HewgillKonrad Rudolph 呢?是不是因为这些家伙的增长都被限制在了极限,所以微不足道?

更一般地说,在没有用于查询的 API(我认为没有)的情况下,除了查看页面的 URL 以查找模式、使用 Python 加载这些页面然后抓取 html 之外,还有其他选择吗?我意识到可能没有通用的方法,但我对人们如何解决这个问题很感兴趣。

编辑:@fitzgeraldsteele:一般来说。 SO 实际上只是一个(人为的)示例。

【问题讨论】:

  • 不确定这里的问题是什么...您是在寻找一般的屏幕抓取方式,还是专门寻找 stackoverflow 的方式?
  • 显然,有 /was/ 一个 API 用于这个确切的任务 (stackoverflow.uservoice.com/pages/general/suggestions/…),但它现在似乎被破坏了
  • 使用 BeautifulSoup 或正则表达式进行简单的抓取和解析将使整个项目在几个小时内完成。
  • @Max. S:请将其发布为答案,以便我们投票。
  • 如果你问的是 HTML 抓取,这绝对是重复的。所有这些:stackoverflow.com/search?q=%5Bpython%5D+%5Bhtml%5D+soup 不,Martelli 可能更瘦、更聪明、更漂亮,但他永远追不上我。我有长时间运行的单元测试,在重构时给了我太多的“空闲”时间。

标签: python screen-scraping


【解决方案1】:

在知识共享许可下,Stack Overflow 每月有一个完全可用的“数据转储”,例如,参见here(只是关于此的许多链接中的第一个“在我的拇指下”——至少每月一个) .对于像我的平均每周代表相对于其他一些海报这样的分析,这样的每月数据块比屏幕截图更有用。

如果您确实想对某些(其他;-)网站进行屏幕抓取,并且不违反他们的政策或他们的 robots.txt 文件,Python 是几个很好的选择之一——从 scrapy 开始,并且例如,您不会有那么多额外的工作要做。

【讨论】:

  • 谢谢,亚历克斯。 scrapy 和(甚至只是)每月“数据转储”的想法对我来说都是新的。
  • 它们都是极好的想法,尤其是(知识共享许可)数据转储(SO 如此迅速地成为领先的编程问答网站是有原因的——背后的想法很棒!-)。跨度>
猜你喜欢
  • 1970-01-01
  • 2010-12-20
  • 2021-12-24
  • 1970-01-01
  • 2018-11-17
  • 2023-03-29
  • 2016-01-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多