如何在不加载图像/脚本的情况下在后台加载和分析页面
How to load and analyze page in background without loading images/scripts?
在不加载任何相关图像/脚本等的情况下,为AJAX请求的页面获取可用DOM的最佳方法是什么?
背景:我想在后台加载一个页面,然后对它进行某种数据挖掘(这是一个浏览器扩展,所以我无法控制页面本身)。我不想花时间在后台页面上加载图像和运行脚本,因为这只是我需要的页面内容
- 通过ajax加载数据
- 去掉所有包含
src
和href
属性的标签,或者简单地用data:null
更改这些属性的值。如果数据还包含内联样式,则应删除所有包含对外部资源引用的语句(例如,背景和边界图像、.htc
组件、xul绑定、.ico游标) - 将过滤后的数据附加到DOM并对其进行分析
步骤2可以通过javascript中的正则表达式来实现。例如
/* here we are in the ajax "success" callback */
...
data = data.replace(/(src|href|style)=['"]([^'"]+?)['"]/gi,
function(match, attribute) {
return (attribute.toLowerCase() === 'style')
? attribute + '=""' /* remove all inline style */
: attribute + '="data:null"'; /* href and src set to data:null */
})
/* append filtered data */
$(data).appendTo($('body_or_other_element'))
如果可能,请使用jQuery,正如我上面提到的。它可以根据需要轻松地选择页面DOM的部分。
以下是一些例子:
您可以获取标签href属性,如下所示:$("a",$(ajax_response)).attr("href");
标题的内容:$("Title",$(ajax_response)).html();
你可能需要测试选择器,看看哪一个最有效,但是,我认为这是一个简单的方法。
相关文章:
- JS页面在后台加载时显示动画
- 加载初始网站后在后台加载数据
- 如何在Mozilla插件中检测后台加载的URL
- 在页面加载/刷新时在后台运行扩展
- 在浏览器上显示之前,在后台预加载/刷新页面
- 如何在后台加载图像,然后在完成后显示页面
- 如何加载jQuery后台检查插件
- 如何让chrome扩展在页面加载的后台执行功能
- 正确有效地实现后台加载
- 使用 createHTMLDocument 在后台解析动态加载的文档
- Javascript覆盖,而所有内容都在后台加载
- Chrome 应用/扩展程序 - 后台请求错误,或允许应用问题加载 Google 文档 API
- Firefox加载项从后台/内容脚本访问弹出脚本
- 监控后台图像加载纯javascript
- 在后台加载iframe网站
- 在后台缓存CSS和Javascript,或者从应用程序加载
- 多次加载后台脚本
- 如何在不加载图像/脚本的情况下在后台加载和分析页面
- Jquery监听后台ajax加载后输入字段的变化
- 我想先使用jquery加载后台,但我的代码没有;似乎不起作用