【问题标题】:How to read some portion of a webpage and store its text in an excel file如何阅读网页的某些部分并将其文本存储在 Excel 文件中
【发布时间】:2012-12-23 09:14:40
【问题描述】:

我通过网站复印软件下载了一些网站。我想从所有页面中提取一些信息。

假设有很多产品页面,我想只收集所有页面中的产品信息并将其存储在一个 excel 文件中。

我想知道有哪些可能的方法来做到这一点。我的朋友告诉我,他可以编写一些脚本并实现它,但我不明白任何脚本如何解决整个目的。

是否有任何免费软件或任何代码可以完成这项工作。我对java很了解,如果我可以通过java编写代码实现它,那么请提供一些指导。

【问题讨论】:

    标签: java html webpage html-content-extraction


    【解决方案1】:

    您可能不想使用 Java 而是使用 JavaScript,因为产品页面是网页,因此您可能更喜欢浏览器原生语言。如果是我,我会这样处理:

    1 - 编写一个加载所有页面的主 JS 脚本,一次一个。

    2 - 在每个页面中,选择该产品信息(可能使用 $('#productID') 等)

    3 - 将它们转换成 JSON 格式并通过一些第三方库导出为 CSV(或者自己编写一些代码)。一个此类库的示例:http://www.zachhunter.com/2011/06/json-to-csv/

    【讨论】:

    • 您能否详细说明第一步或提供任何示例。因为我对 JS 没有太多的知识和经验
    • 首先,您需要一个名为 jQuery 的 JS 库。其次,假设您将页面存储在home/page1.htmlhome/page2.html等处,将每个页面中#productID的内容加载到您的#jsonResult div中result.html您只需将其放入您的@ 987654329@:$('#jsonResult').load('home/page1.html div#productID')。这是一般的想法。当然,您还需要解析 JSON 格式的内容。参考:api.jquery.com/load
    • 谢谢,我现在可以在 result.html 中获取数据,现在我有最后一个问题,我有数百个产品页面,如何一次或任何从所有页面中提取数据自动从一个接一个的页面获取数据的方式?
    • 这不是 JS 问题。这是一个正则表达式问题。这实际上取决于页面的命名方式。对于一个虚拟的例子,如果它像我上面提到的那样存储为 page1、page2 等,你只需要做一个 for 循环并使用 load('home/page' + i + '.html div#productID') 和 i 作为迭代索引。
    • 如果命名方案是随机的并且没有办法解析它,你可以使用服务器端语言,比如 Java,重命名主题或至少遍历目录,但我想我'我在这里太笨拙了。 docs.oracle.com/javase/tutorial/essential/io/find.html
    【解决方案2】:

    看看JSoup,一个用于 HTML 文档的 Java 库。

    您会在他们的网站上找到大量文档。

    您将需要了解 CSS 选择器以从文档中选择特定元素,示例参见 http://jsoup.org/cookbook/extracting-data/selector-syntax

    然后将收集到的数据以逗号分隔值的形式写入可以加载到 Excel 中的文本文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-07
      • 2019-06-27
      • 1970-01-01
      • 1970-01-01
      • 2021-05-08
      相关资源
      最近更新 更多