经过几个小时的尝试和阅读后,我对标题主题感到有点迷失。
我的问题:我正在尝试获取单个网页的完整HTML内容(javascript HTML追加/添加的内容)。 我已经尝试过了:
现在,问题是,我怎样才能模仿"另存为"浏览器的功能或者我如何获得完整的HTML内容第一个和然后使用Jsoup来扫描静态的最终HTML内容?
非常感谢您的建议和帮助!
答案 0 :(得分:1)
我终于得到了我想要的东西。 我会尝试解释那些需要帮助的人!
所以!该过程由两个步骤组成:
1 - 获取HTML内容并保存
在此步骤中,您需要下载 phantomjs 并使用它来获取内容。 这是获取目标页面的代码。 只需根据您要获取的网页的网址以及 mySaveFile.html 文件的名称更改 myTargetedPage.com 。
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);
}
}
}
享受!
答案 1 :(得分:0)
有一个很好的插件可以满足您的需求。它提供了一种查看页面及其功能的方法。它适用于某些浏览器,但不是全部。这是链接:http://chrispederick.com/work/web-developer/
P.S。安装后,右上角的工具栏上有一个小齿轮。这就是所有功能所在的地方。