我将用一个例子来解释我的问题。 建议我去网址: http://www.google.co.il/#q=university
然后我右键单击并选择“查看源代码”,我没有得到真正的html源代码, 我很确定,因为如果我在代码中搜索出现在文档中的唯一单词,我就没有结果。
我知道在chrome中我可以标记某些东西并检查组件,然后我可以看到真正的源代码,但我想使用java程序来获取代码,所以我想了解为什么我不知道的问题当我去'查看源'时,看到真正的html源。
答案 0 :(得分:2)
查看源代码通常不显示任何javascript生成的内容,因为您可能希望使用插件,例如firebug。
答案 1 :(得分:2)
我知道在Java中查看实际源代码的唯一方法,包括javascript修改将通过虚拟浏览器框架,如HtmlUnit。
HtmlUnit可以执行JS脚本并将所有更改应用于DOM树。您必须序列化它才能获得实际页面。请记住,没有“完整的html源”这样的东西。您只能获取DOM树并可能将其序列化。
答案 2 :(得分:1)
好吧,如果您选择“查看源代码”,则会在地址栏中看到页面的实际HTML源代码。但是,您可能希望通过嵌入代码加载外部内容并将其放入HTML中来“混淆”您要查看的页面。
如果你仍然想要在“好”中自动解析这样一个页面,你需要运行一个完整的HTML解释器,例如Webkit - 一个很好的工作,原则上你用“inspect元素”做什么。另一种方法是你在page-html中找到加载外部内容的行,然后依次加载它们。如果你很幸运,这不是故意混淆的,而且很容易实现小任务。
但是,如果你需要整个DOM结构,你应该考虑实现一个浏览器引擎......
答案 3 :(得分:1)
您可以执行诸如document.documentElement之类的操作,以提供所有HTML内容。
console.log(document.documentElement);
答案 4 :(得分:0)
你搜索了什么字?
我猜视图源会显示完整的HTML代码,甚至是页面上看不到的那部分。 修剪搜索字符串后尝试再次搜索。并在Chrome中搜索相同的字符串,你之前尝试过的。
另外,如果在JS
事件完成后HTML
更改onload
,则不会更新。
答案 5 :(得分:0)
您正在寻找的文字可能是通过JavaScript呈现的。如果你正在使用Chrome(自从你提到它),那么当你执行“inspect element”时出现的web开发人员窗格有一个“资源”选项卡,其中列出了JavaScript文件,样式表等。
答案 6 :(得分:0)
“查看源代码”为您提供服务器生成的纯响应。正如Joachim Isaksson已经提到的 - 使用Chrome或Firebug for Firefox。
答案 7 :(得分:0)
在您给出的示例页面中,每个结果元素都是由JS脚本函数从其中一个加载的文件生成的;此外,它不会使用普通字符渲染文本,而是使用Unicode。