2012-01-09 182 views
3

我会用一个例子来解释我的问题。 推荐我去的网址: http://www.google.co.il/#q=university查看网站的实际源代码

,然后我点击右键,选择“查看源文件”,我没有得到真正的HTML源代码, 我敢肯定的,因为如果我在代码中搜索出现在文档中的独特词汇我没有得到任何结果。

我知道在铬我可以标记的东西和检查组件,然后我可以看到真正的源代码,但我想用一个Java程序获取代码,所以我想了解为什么我不知道的问题当我去'查看源代码'时看不到真正的html源代码。

回答

1

那么,如果您选择“查看源代码”,则可以在地址栏中看到页面的实际HTML源代码。但是,您可能想要查看的页面是通过嵌入代码加载外部内容并将其放入HTML中而“模糊处理”的。

如果你仍然想自动地解析这样一个“好”的页面,你需要运行一个完整的HTML解释器,比如Webkit - 一个工作的地狱,原则上你在做什么“检查元素”。另一种方法是在页面html中找到加载外部内容的行,然后依次加载它们。如果你幸运的话,这不会被故意混淆,而且很容易实现小任务。

但是,如果您需要整个DOM结构,你应该想想实现浏览器引擎之一...

2

查看源代码通常不显示任何JavaScript生成的内容,看到的是你要使用插件,例如萤火虫。

0

你搜索了哪个单词?

我猜查看源代码会显示完整的HTML代码,即使是页面上不可见的部分。 尝试修剪搜索字符串后再次搜索。并在chrome中搜索相同的字符串,你之前尝试过的。

另外,在onload事件完成后,如果JS发生更改HTML,它将不会更新。

0

您正在查找的文本可能是由JavaScript呈现的。如果您使用Chrome(既然你提到它),当你做“检查元素”,来了Web开发人员面板上有“资源”选项卡中列出JavaScript文件,样式表等

0

“查看源文件”为您提供服务器生成的纯粹响应。正如Joachim Isaksson已经提到的那样 - 使用Chrome或Firebug for Firefox。

2

我知道看在Java中的实际来源,包括由修改是通过虚拟浏览器框架,像HtmlUnit JavaScript中的唯一途径。

HtmlUnit可以执行JS脚本并将所有更改应用到DOM树。你将不得不序列化它来获得实际的页面。请记住,没有“完整的html源码”这样的东西。您只能获取DOM树并可能将其序列化。

0

在你给的例子页面,通过从一个JS脚本函数生成的每个结果元素加载的文件;此外,它不会使用纯字符而是使用Unicode来呈现文本。