从网站提取元数据

问题描述:

我想知道是否有一种方法可以让我处理html源代码,让我可以取出我想要的特定标签吗?从网站提取元数据

对不起,如果它听起来容易或太简单。我是编程新手。

如果您知道结构,可以使用DOM从网页中提取数据。

+0

谢谢,但目前我有一个字符串中的整个html源代码,有反正它来处理呢?因为结构可能会有所不同,元属性标记是常数。 – simplified 2011-06-16 18:32:31

如果你有一个字符串的HTML,那么你可以使用:

var str = '<html></html>'; // your html text goes here 
var div = document.createElement('div'); 
div.innerHTML = str; 
var dom = div.firstChild; // dom is the object you want, 
          // you can manipulate it using standard dom methods 

或者,使用jQuery。 jQuery是一个库,可以帮助您更轻松地操作和访问HTML元素。首先,将其添加到文档的头部:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> 

这是对jQuery库的引用。那么,这样做:

var foo = $("<html>Your html here</html>"); 

或者,如果你的HTML是一个变量(例如STR),你可以这样做:

var foo = $(str); 

然后,你可以操纵在许多不同的方式解析FOO。例如,要删除所有段落元素,你可以使用

foo.remove('p'); 

或者,要删除使用id =“酒吧”,使用段落元素:

foo.remove('p.bar'); 

一旦你完成你的修改,你可以使用以下格式获取新的html文本:

foo.html(); 

为什么你的html在一个字符串中?它不是当前页面的html吗?

+0

如果它是当前页面的html,则可以简单地使用已经构建的DOM对象。 – Ord 2011-06-16 19:51:40

+0

然后dom.getElementsByTagName(“meta”)[0] .getAttribute(“author”)例如 – mplungjan 2011-06-16 19:55:14

+0

mplungjan上面提到的使用jQuery的等价物是(假设你的jQuery变量是foo):foo.filter('meta ').attr(' 作者“); – Ord 2011-06-16 20:31:57