从大量网址中获取标签内容
Get tag content from a lot of urls
我这里有一个情况:在CSV文件中有很多URL-超过3000个这种格式:
www.site1.com/product1
www.site1.com/product2
www.site1.com/product3
....
www.site1.com/product3001
从所有页面我必须阅读特定标签 - <div id="cat">category1</div>
我尝试在服务器端解决此问题,但这需要大量服务器资源并导致超时错误。然后我想知道 - 有没有办法用某种 java 脚本或 jQuery 来做到这一点?在这种情况下,浏览器将接收流量。当然 - 这将需要一些时间...但比从服务器获取超时更好。
我认为这
可以通过一些ajax调用然后查找该特定元素(id="cat")来实现。但我想这些站点必须位于同一服务器/域上才能正常工作。
我会尝试的另一种方法是创建一个 iframe 并在循环中加载页面并等待 iframe 的 onload 方法,加载后我会寻找该特定元素并获取其内容......这更有可能起作用,但它会非常缓慢......
var urls = [url1, url2, url3...]; //get all the urls from your file
var urlsLength = urls.length; //get the number of urls to loop for
var iFrame = document.createElement("iframe"); //create an iframe
var iframeContainer = document.getElementById("iframeContainer"); //iframeContainer must exists on your page, you can even hide it with display="none"
var iFrameBody; //variable to hold the iframe body
iframeContainer.appendChild( iFrame ); //add the iframe to its container
for( var i = 0; i<urlsLength; ++i ){ //loop for all the urls
iFrame.src = urls[i]; //browse the designated url
iFrame.onload = function(){ //when it loads, then do your work
iFrameBody = iFrame.contentDocument || iFrame.contentWindow.document; //get the body of the iFrame
doSomething( iFrameBody.getElementById("ELEMENT ID TO LOOK FOR") ); //send the element to your functions
}
}
//this function will receive the element from inside the iframe, you can do whatever you need to
function doSomething(element){
var elementHTML = element.innerHTML;
console.log( element );
}
-编辑-
这种方法太慢了,如上面的评论中所述,做这个服务器端是(恕我直言)最好的方法,但至少你有其他选择,我会远离 AJAX 请求在大量 url 上做这样的事情 ( 30+ ) 并坚持使用 iframe,但仍然相信服务器端是 GO GO。干杯。
相关文章:
- 无法获取标签页网址 - Chrome 扩展程序
- 火狐侧边栏获取标签网址
- Wicket:获取标签属性
- 如何使用动态生成的 id 通过 jquery 获取标签的值
- 获取标签文本并将其设置为输入值[为什么输入值只获取空格前的文本?
- 如何使用 jQuery 在标签的 for 属性中使用子字符串获取标签元素的值
- 不能从 JavaScript 中获取标签
- 如何使用javascript获取
- 需要使用 JS 获取 标签的 “id” 属性
- 从大量网址中获取标签内容
- 获取标签值并使用jquery进行算术运算
- 如何在jQueryMobile中获取标签的值并将其解析为int
- Tag-it jquery:从网络服务中获取标签
- 仍然没有添加到 DOM 中,但如果插入了警报/确认,则会获取标签 ID
- 如何获取标签值以更改我的网址
- JQuery 获取标签内的 html 字符串
- 在javascript中获取标签的rel
- 如何从stripes中获取标签值:java脚本或java中的选项集合
- 如何获取标签的文本
- jQuery正在获取标签'的内容