Javascript 检查提取的URL中是否存在元素
我有一个包含30个URL的页面,我需要单击每个URL并检查是否存在元素。 目前,这意味着:Javascript 检查提取的URL中是否存在元素,javascript,jquery,python,web-crawler,window.open,Javascript,Jquery,Python,Web Crawler,Window.open,我有一个包含30个URL的页面,我需要单击每个URL并检查是否存在元素。 目前,这意味着: $('area').each(function(){ $(this).attr('target','_blank'); var _href = $(this).attr("href"); var appID = (window.location.href).split('?')[1]; $(this).attr("href", _href + '?' + appID);
$('area').each(function(){
$(this).attr('target','_blank');
var _href = $(this).attr("href");
var appID = (window.location.href).split('?')[1];
$(this).attr("href", _href + '?' + appID);
$(this).trigger('click');
});
这将打开30个新选项卡,我手动浏览它们
(所有URL都在同一个域中)
如果有一个具有以下逻辑的爬虫程序,那就太好了:
$('area').each(function(){
1) get the HREF
2) follow it
3) on that new page:
if($('.element')){
push the $('area') into array1
} else {
push the $('area') into array2
}
});
4) Display array1 in green
Display array2 in red
基本上,我想生成一份报告,上面写着:
X个爬网页面包含元素Y
Z爬网页面没有元素Y
很明显,我一直在努力让Javascript/jQuery在新打开的选项卡中工作
我发现了,但我不能完全确定这是否可行
这可以通过Javascript/jQuery实现吗
我只是要求正确的方向,我会自己做这些步骤
非常感谢我建议您使用
iframe
加载页面
例如:
$.each($your-links, function(index, link) {
var href = $(link).attr("href");
// your link preprocess logic ...
var $iframe = $("<iframe />").appendTo($("body"));
$iframe.attr("src", href).on("load", function() {
var $bodyContent = $iframe.contents().find("body");
// check iframe content and remove iframe
$iframe.remove();
}
}
$。每个($您的链接、函数(索引、链接){
var href=$(link.attr(“href”);
//你的链接预处理逻辑。。。
var$iframe=$(“”)。appendTo($(“body”);
$iframe.attr(“src”,href).on(“load”,function()){
var$bodyContent=$iframe.contents().find(“body”);
//检查iframe内容并删除iframe
$iframe.remove();
}
}
但是,我应该说,如果你的爬虫和检查过的页面有不同的域,就会出现问题
我创建了一个简单的项目,展示了如何实现这种方法。
您可以下载它并在一些本地web服务器(apache、iis等)上运行