所以我试图从这样的页面中获取以下音乐类型列表:
http://en.wikipedia.org/wiki/List_of_styles_of_music:_A-F
根据我使用Chrome的“检查元素”,我需要访问<ul>
元素'<li>
元素'标题元素。然后,我需要访问这些变量,以便我可以将它们输入到数据库中(但我可以这样做)。
那么如何获得所有ul - &gt; li - &gt;标题元素?我甚至不确定如何连接到那个wikipedia.org网页,所以我可以开始擦洗。我对jQuery比较陌生,但到目前为止真的很享受它的强大功能!
谢谢你们。
答案 0 :(得分:0)
您可以使用一些XPath来提供帮助:
var snapshot = document.evaluate('//ul/li/a[1]/@title', document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
这将创建文档中与XPath查询匹配的所有节点的快照。上面的XPath查询第一个链接元素的title
属性,该属性是<li>
的子节点<ul>
的子节点。
获得快照后,您可以遍历它并获取名称:
for (var i = 0; i < snapshot.snapshotLength; i ++) console.log(snapshot.snapshotItem(i).nodeValue);
(您可以在chrome的Web检查器控制台中运行上面的代码。)
您也可以在PHP中执行相同的操作,只需在DOMDocument中加载文档:
$doc = new DOMDocument;
$doc->loadHTML(file_get_contents('http://en.wikipedia.org/wiki/List_of_styles_of_music:_A-F'));
并使用XPath进行查询:
$xp = new DOMXPath($doc);
foreach ($xp->query('//ul/li/a[1]/@title') as $node) {
echo "$node->nodeValue\n";
}
答案 1 :(得分:0)
$.ajax({
url: "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FList_of_styles_of_music%3A_A-F%22%20and%0A%20%20%20%20%20%20xpath%3D'%2F%2Fdiv%5B%40id%3D%22bodyContent%22%5D%2Ful%2Fli%2Fa'&format=json&diagnostics=true",
success: function(e){
$.each(e.query.results.a,function(i,c){
$('ul').append($('<li />').text(c.title));
});
}
});