gpt4 book ai didi

javascript - 获取完整的 HTML 内容网页(包括 javascript 内容)

转载 作者:太空宇宙 更新时间:2023-11-04 11:56:32 24 4
gpt4 key购买 nike

经过几个小时的尝试和阅读,我对标题主题有点迷茫。

我的问题:我正在尝试获取单个网页的完整 HTML 内容(javascript HTML 附加/添加内容)。我已经尝试过的:

  • 我使用了 Jsoup,但由于 jsoup 不处理 javascript 内容,我不得不进行更改。
  • 我使用了 HmtlUtil,但我在加载目标网页时遇到很多错误(例如 Css 错误、runtimeError、EcmaError 等)
  • 我使用 Chrome 的基本功能来保存完整的网页内容,然后使用 Jsoup 库来获取我想要查找的内容。这是我获得我希望获得的内容的唯一途径。

那么现在的问题是,我怎样才能模仿浏览器的“另存为”功能,或者一般来说,我怎样才能首先然后 使用 Jsoup 扫描静态最终 HTML 内容?

非常感谢您的建议和帮助!

最佳答案

我终于得到了我想要的。我会尽力为需要帮助的人解释!


所以!该过程由两个步骤组成:

  • 首先,获取最终内容 HTML(包括 javascript HTML 内容等),就像您正在访问网页一样,然后将其保存到一个简单的 file.html
  • 然后,我们将使用 Jsoup 库在保存的文件 file.hmtl 中获取所需的内容。

1 - 获取 HTML 内容并保存

对于此步骤,您需要下载 phantomjs 并使用它来获取内容。这是获取目标页面的代码。只需将 myTargetedPage.com 更改为您要获取的页面的 URL 和文件名 mySaveFile.html

var page = require('webpage').create();
var fs = require('fs');
page.open('http://myTargetedPage.com', function () {
page.evaluate();
fs.write('mySaveFile.html', page.content, 'w');
phantom.exit();
});

如您所见,保存的文件与浏览器中加载的内容完全相同。

2 - 提取你想要的内容

现在,我们将使用 Java 和库 Jsoup获取或特定内容。在我的示例中,我想获取网页的这一部分:

/* HTML CONTENT */
<span class="my class" data="data1"></span>
/* HTML CONTENT */
<span class="my class" data="data2"></span>
/* HTML CONTENT */

为此,这段代码就可以了(不要忘记编辑 thePathToYourSavedFile.html :

public static void main(String[] args) throws Exception {
String url = "thePathToYourSavedFile.html";

Document document = Jsoup.connect(url).userAgent("Mozilla").get();

Elements spanList= document.select("span");

for (Element span: spanList) {
if(span.attr("class").equals("my class")){
String data = span.attr("data");
System.out.println("data : "+data);
}
}
}

尽情享受吧!

关于javascript - 获取完整的 HTML 内容网页(包括 javascript 内容),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30167840/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com