【问题标题】:Language for web scraping JAVASCRIPT content网页抓取 JAVASCRIPT 内容的语言
【发布时间】:2011-07-19 20:42:01
【问题描述】:

我认为主题问这个问题,我通常使用 PHP 进行解析/网络抓取,但我在大多数情况下无法抓取 javascript 的时间真的很糟糕

ex:解析在执行 javascript 时出现的 div。

我读过关于 RUBY 的文章,它有一个用于 javascript 的解析器库,所以问题是 w 是用于程序的语言抓取,它可以有效地废弃 javascript 生成的内容?它在这里是一个 PHP 库,例如用于解析 javascript 内容的 ruby​​ 库?

【问题讨论】:

    标签: php ruby programming-languages web-scraping


    【解决方案1】:

    对此有一些策略。根据您的需要,考虑以编程方式实例化一个浏览器实例,您可以从中挂钩并从中读取页面。

    这个想法是,让浏览器完成工作,因为页面是为浏览器而不是您的机器人制作的。然后,您可以使用浏览器插件将数据提供给您的主要应用程序运行的东西,然后点击并刮掉。

    不过,这对于您需要的东西来说可能有点矫枉过正。由你来决定。

    【讨论】:

    • 我读过 Ruby:mecanicer,可以做到 np,但不知道是否有相同的库用于 Php python 等...我没有找到用于模拟 Web 浏览器的库
    • @Nonyck,你不想模拟浏览器,你想附加到浏览器。这是一项复杂的任务。
    • 而 WWW:Mechanize 不要那样做??
    【解决方案2】:

    您应该查看一些无 GUI/无头浏览器。有一些是为 Java 编写的。我没有找到 PHP 的。

    看看:

    【讨论】:

      【解决方案3】:

      您可以尝试使用 Selenium 之类的东西,它可以让您自动执行浏览器任务。

      另一方面,您可以详细了解执行 js 代码时会发生什么。例如,如果 js 代码通过 POST 一些数据向服务器请求某些内容,您可以以常规方式进行模拟。

      【讨论】:

        【解决方案4】:

        你应该看看 PhantomJS 和 CasperJS(无头浏览器)。

        【讨论】:

          【解决方案5】:

          在 ruby​​ 世界中,运行 Phantomjs 的 gem 是 poltergeist

          还有一篇文章介绍了您在 ruby​​ here too 中的一些选项(但它们并非都支持 js)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2023-02-03
            • 2010-10-09
            • 2014-05-08
            • 1970-01-01
            相关资源
            最近更新 更多