如何用JS获取JS生成的HTML? 本帖最后由 junhongbill 于 2014-10-22 15:13:29 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 要分析脚本 获取真实数据url,或者用iframe 获取iframe内的数据 url是真实的,直接用$.open()方法没有问题。但是用get方法的时候就只能得到模板HTML,得不到js生成的数据部分 也就是说必须自己分析生成数据的那个js?那是个大型的专利服务网站……会很花时间的我不需要多么高的运行效率,只要能简单粗暴的把开个新页面所能获得的dom拿到手就行了。 js生成的数据也是由服务器获取的,找出数据的地址也就是说必须自己分析生成数据的那个js?那是个大型的专利服务网站……会很花时间的我不需要多么高的运行效率,只要能简单粗暴的把开个新页面所能获得的dom拿到手就行了。 用webbrowser 或iframe等页面加载完再获取 $('iframe').ready(function () { $('iframe').html(function(i,origText) { console.log(origText); });});我在构建了多个iframe之后加入了这段代码,但是打印的都是“”。这是怎么回事?不是已经写了ready了吗? 这个有点难度,难点在于,如果某些数据需要网页的行为(事件)触发ajax抓取,你仅仅打开是不够的。 是啊,除非我去认真读网站的js,不然天知道是哪个事件触发的。又没有模拟浏览器的“打开”行为的功能还是iframe比较靠谱,问题是为什么我对iframe节点用html()方法只能得到空值?代码贴在你楼上了 $('iframe').ready(function () { $('iframe').html(function(i,origText) { console.log(origText); });});我在构建了多个iframe之后加入了这段代码,但是打印的都是“”。这是怎么回事?不是已经写了ready了吗?$($(iframe)[0].contentWindow.document.body).html() $('iframe').ready(function () { $('iframe').html(function(i,origText) { console.log(origText); });});我在构建了多个iframe之后加入了这段代码,但是打印的都是“”。这是怎么回事?不是已经写了ready了吗?$($(iframe)[0].contentWindow.document.body).html()现在的问题是无法捕获“真正的”页面加载完成信息。用这个代码可以捕获全部的信息:window.setTimeout(function () { $('iframe').each(function() { console.log($(this.contentDocument.body).html());});},10000)但是用load来判断就只能得到没数据的模板网页:$(document).ready(function ($) { $('iframe').load(function() { console.log($(this.contentDocument.body).html()); });});load不是只有在载入完成以后才会被触发吗?为什么这里还是不可以呢? 获得多个button,得到其中一个button的value,求指点~ 如何将已最小化的页面还原到最小化之前的桌面位置 每到周6周日 论坛就好象死了一样 看不到一点积极向上的氛围 痛苦~ cookie问题 求救!!如何用javascript动态控制 td的colspan,rowspan啊? 如何获得当前行内文件框或下拉列表框的值 history.go(0)和location.reload()有什么区别? 怎样实现‘总在最前’功能 关于预缓存图象问题 一个表单能同时提交给两个页面吗? 如何在网页中嵌入海康视频 请问大神,怎么制作坦克爆炸效果?
但是用get方法的时候就只能得到模板HTML,得不到js生成的数据部分
那是个大型的专利服务网站……会很花时间的
我不需要多么高的运行效率,只要能简单粗暴的把开个新页面所能获得的dom拿到手就行了。
也就是说必须自己分析生成数据的那个js?
那是个大型的专利服务网站……会很花时间的
我不需要多么高的运行效率,只要能简单粗暴的把开个新页面所能获得的dom拿到手就行了。
$('iframe').ready(function () {
$('iframe').html(function(i,origText) {
console.log(origText);
});
});我在构建了多个iframe之后加入了这段代码,但是打印的都是“”。
这是怎么回事?不是已经写了ready了吗?
又没有模拟浏览器的“打开”行为的功能
还是iframe比较靠谱,问题是为什么我对iframe节点用html()方法只能得到空值?
代码贴在你楼上了
$('iframe').ready(function () {
$('iframe').html(function(i,origText) {
console.log(origText);
});
});我在构建了多个iframe之后加入了这段代码,但是打印的都是“”。
这是怎么回事?不是已经写了ready了吗?
$($(iframe)[0].contentWindow.document.body).html()
$('iframe').ready(function () {
$('iframe').html(function(i,origText) {
console.log(origText);
});
});我在构建了多个iframe之后加入了这段代码,但是打印的都是“”。
这是怎么回事?不是已经写了ready了吗?
$($(iframe)[0].contentWindow.document.body).html()
现在的问题是无法捕获“真正的”页面加载完成信息。
用这个代码可以捕获全部的信息:
window.setTimeout(function () {
$('iframe').each(function() {
console.log($(this.contentDocument.body).html());
});
},10000)但是用load来判断就只能得到没数据的模板网页:$(document).ready(function ($) {
$('iframe').load(function() {
console.log($(this.contentDocument.body).html());
});
});load不是只有在载入完成以后才会被触发吗?为什么这里还是不可以呢?