我一直在考虑使用 jQuery 使用简单的屏幕抓取工具,我想知道以下是否可行。
我有一个简单的 HTML 页面,并且正在尝试(如果可能的话)从另一个页面获取所有列表项的内容,如下所示:
主页:
<!-- jQuery -->
<script type='text/javascript'>
$(document).ready(function(){
$.getJSON("[URL to other page]",
function(data){
//Iterate through the <li> inside of the URL's data
$.each(data.items, function(item){
$("<li/>").value().appendTo("#data");
});
});
});
</script>
<!-- HTML -->
<html>
<body>
<div id='data'></div>
</body>
</html>
其他页面:
//Html
<body>
<p><b>Items to Scrape</b></p>
<ul>
<li>I want to scrape what is here</li>
<li>and what is here</li>
<li>and here as well</li>
<li>and append it in the main page</li>
</ul>
</body>
那么,是否可以使用 jQuery 从外部页面中提取所有列表项内容并将它们附加到 div 中?
最佳答案
使用$.ajax
将另一个页面加载到一个变量中,然后创建一个临时元素并使用.html()
将内容设置为返回值。遍历 nodeType 1 元素的子元素并保留其第一个子元素的 nodeValues。如果外部页面不在您的网络服务器上,您将需要使用您自己的网络服务器代理该文件。
像这样:
$.ajax({
url: "/thePageToScrape.html",
dataType: 'text',
success: function(data) {
var elements = $("<div>").html(data)[0].getElementsByTagName("ul")[0].getElementsByTagName("li");
for(var i = 0; i < elements.length; i++) {
var theText = elements[i].firstChild.nodeValue;
// Do something here
}
}
});
关于javascript - 使用 jQuery 进行简单的屏幕抓取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5667880/