我的javascript foo有点弱,能不能用javascript把它上面的页面抓取成一个字符串?我不希望它对网页发出另一个请求,我需要它自己和页面上的任何其他来源读取,这些来源将包括为每个页面请求生成的唯一令牌,因此需要它读取该页面实例上的所有数据。
它还需要是该页面上的所有内容,包括评论,因为我想从它创建一个md5哈希,这是可能的吗?
需要抓取的html是在页面最初完成加载后表示DOM的html。
发布于 2011-10-29 05:18:03
对此要小心。使用javascript,您可以访问页面的所有对象,并且可以获取整个页面的HTML。但是,使用javascript获取的HTML可能与原始页面下载的HTML完全相同,也可能不是。有些浏览器(比如老版本的IE)实际上并不存储原始的超文本标记语言,所以当你请求innerHTML时,它们会从页面上的对象中生成超文本标记语言。当他们这样做时,属性的顺序可能不同,引用可能不同,甚至属性名称的大写也可能不同。
因此,如果你真的需要原始超文本标记语言页面的md5散列,并且需要它的准确性,你将不得不再次从服务器请求它(它最终可能来自浏览器缓存),并计算你自己的下载内容的md5散列-你不能使用当前文档的innerHTML。
发布于 2011-10-29 05:13:38
var myHTML = document.documentElement.outerHTML;
演示,演示了Marc B的想法没有提供期望的结果的示例:http://jsfiddle.net/AlienWebguy/hu2Mj/
https://stackoverflow.com/questions/7934960
复制相似问题