【问题标题】:Scrape data from HTML pages using Java, output to database [closed]使用 Java 从 HTML 页面中抓取数据,输出到数据库 [关闭]
【发布时间】:2011-01-29 02:05:58
【问题描述】:

我需要知道如何创建一个刮板(在 Java 中)以从 HTML 页面收集数据并输出到数据库......不知道从哪里开始,所以你可以给我的任何信息都会很棒.另外,在这里你不能太简单或太简单......谢谢:)

【问题讨论】:

    标签: java scraper


    【解决方案1】:

    我正在使用 JSoup 运行一个爬虫我是一个菜鸟,但发现它非常直观且易于使用。它还能够解析范围广泛的或来源的 html、XML、RSS 等。

    我尝试了 htmlunit,但几乎没有成功。

    【讨论】:

      【解决方案2】:

      使用 JTidy 您可以从 HTML 中删除数据。然后你就可以使用JDBC了。

      【讨论】:

        【解决方案3】:

        很大一部分网站是基于格式错误的 HTML 代码构建的。
        您必须使用 HtmlCleaner 之类的东西来清理要解析的源代码。
        然后您就可以成功地使用 XPath 提取节点和正则表达式来解析您从页面中提取的字符串的特定部分。

        至少这是我使用的技术。

        您可以使用从 HtmlCleaner 返回的 xHtml 作为您的应用程序和您尝试解析的远程页面之间的一种接口。您应该对此进行测试,如果远程页面发生更改,您只需提取由 HtmlCleaner 清理的新 xHtml,重新调整 XPath 查询以提取您需要的内容并针对新接口重新测试您的应用程序代码。

        如果您想创建多线程“scraper”,请注意 HtmlCleaner 不是线程安全的(请参阅我的 post here)。
        这个post 可以让您了解如何使用 XPath 解析格式正确的 xHtml。
        祝你好运! ;)

        注意:在我实现 Scraper 时,HtmlCleaner 在规范化我想要解析的页面方面做得更好。在某些情况下,jTidy 无法完成相同的工作,因此我建议您尝试一下

        【讨论】:

          【解决方案4】:

          我在一个抓取 HTML 页面的项目中成功使用了lobo browser API。 lobo 浏览器项目提供了一个浏览器,但您也可以非常轻松地使用它背后的 API。它还将执行 javascript,如果该 javascript 操作 DOM,那么当您调查 DOM 时,这也将反映在 DOM 中。因此,简而言之,API 允许您模拟浏览器,您还可以使用 cookie 和其他东西。

          现在为了从 HTML 中获取数据,我首先将 HTML 转换为有效的 XHTML。你可以use jtidy for this。由于 XHTML 是有效的 XML,您可以使用 XPath 轻松检索您想要的数据。如果您尝试编写从原始 HTML 解析数据的代码,您的代码将很快变得一团糟。因此我会使用 XPath。

          获得数据后,您可以使用JDBC 将其插入数据库中,或者如果您想避免编写过多的 SQL,则可以使用 Hibernate

          【讨论】:

            【解决方案5】:

            首先,您需要熟悉 Java 中的 HTML DOM 解析器,例如 JTidy。这将帮助您从HTML 文件中提取您想要的内容。一旦你有了必要的东西,你可以使用JDBC 输入database

            在这项工作中使用正则表达式可能很诱人。但是不要。 HTML 不是常规语言,因此正则表达式不是要走的路。

            【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-03-23
            • 1970-01-01
            • 2021-05-18
            • 2019-02-26
            • 2015-04-22
            • 2016-09-27
            • 2013-02-16
            相关资源
            最近更新 更多