【问题标题】:How do I scrape data generated with javascript using BeautifulSoup?如何使用 BeautifulSoup 抓取 javascript 生成的数据?
【发布时间】:2018-07-01 18:13:35
【问题描述】:

我正在尝试使用 python 和 BeautifulSoup 的网络抓取从博客中迁移一些 cmets。我正在寻找的内容不在 HTML 本身中,并且似乎是在脚本标签中生成的(我找不到)。我已经看到了一些关于此的答案,但其中大多数都特定于某个问题,我似乎无法弄清楚如何将它应用于我的网站。我只是想从这样的页面中抓取 cmets:

http://www.themasterpiececards.com/famous-paintings-reviewed/bid/92327/famous-paintings-duccio-s-maesta

我也尝试过 Selenium,但我目前使用的是基于 Cloud9 的 IDE,它似乎不支持 Web 驱动程序。

如果我搞砸了任何术语,我深表歉意,我对编程很陌生。如果有人有任何提示,那将很有帮助。谢谢!

【问题讨论】:

  • 使用 dryscrape 库。或者 phantomJS
  • 使用 Selenium 是您最好的选择。我不关心您的 IDE,但我建议您将 IDE 更改为 Pycharm 或支持驱动程序的东西。

标签: javascript python json web-scraping beautifulsoup


【解决方案1】:

您有很多方法可以删除此类内容。一种方法是了解如何在该网站上加载 cmets。在 chromium 开发者工具中快速查找时,提到的页面的 cmets 是通过 this api 调用加载的。

这可能不适合您,因为您可能不会为每个不同的页面生成此 url。

另一种更可靠的方法是使用无 GUI 浏览器呈现此类 js 内容,为了便于实施,我建议使用 scrapy with splash。Splash 是一个 python 框架,它可以为您的请求呈现大部分内容。

【讨论】:

    猜你喜欢
    • 2012-04-20
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-19
    相关资源
    最近更新 更多