【问题标题】:Python BeautifulSoup on javascript tables with multiple pages具有多个页面的 javascript 表上的 Python BeautifulSoup
【发布时间】:2012-02-12 12:18:29
【问题描述】:

我曾经有一个 python 脚本,它使用 Mechanize 和 BeautifulSoup 从下表中正确提取数据。但是,该站点最近将表格的编码更改为 javascript,我无法使用它,因为表格中有多个页面。

http://www.fangraphs.com/leaders.aspx?pos=all&stats=bat&lg=all&qual=0&type=8&season=2011&month=0&season1=&ind=0&team=25&players=0

例如,在上面的链接中,我如何从表格的第 1 页和第 2 页获取数据? FWIW,URL 没有改变。

【问题讨论】:

    标签: javascript python screen-scraping beautifulsoup


    【解决方案1】:

    最好的办法是运行一个无头浏览器,例如phantomjs,它理解 JavaScript、DOM 等的所有复杂性,但你必须用 Javascript 编写代码,好处是你可以做任何你想做的事,使用解析 html BeautifulSoup 有一段时间很酷,但长期来看会让人头疼。那么,当你可以访问 DOM 时,为什么还要抓取呢

    【讨论】:

      【解决方案2】:

      Mechanize 不处理 javascript。

      您可以观察单击按钮时发出的请求(使用 Firefox 中的 Firebug 或 Chrome 中的开发者工具)。比尝试反向工程在页面后面运行的 javascript 并尝试使用您的 python 代码做类似的事情,看看Spidermonkey 或

      尝试使用Selenium。

      Selenium 是一个功能测试框架,它可以让浏览器自动执行某些操作,进而测试代码的底层操作

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-21
        • 1970-01-01
        • 2019-05-26
        • 2021-06-23
        • 2020-07-01
        相关资源
        最近更新 更多