如何使用各种语言和解析库来解析HTML?
回答时:
在回答有关如何使用正则表达式解析HTML的问题时,将链接到单个注释,以此来显示正确的操作方法。
为了保持一致性,我要求该示例在锚标记中解析一个href
文件。为了便于搜索此问题,我要求您遵循以下格式
语言:语言名称
库:库名称
[example code]
请将该库作为指向该库的文档的链接。如果您想提供提取链接以外的示例,请同时提供:
目的:解析所做的工作
发布于 2009-04-21 18:35:34
语言:JavaScript
库:jQuery
$.each($('a[href]'), function(){
console.debug(this.href);
});
(使用firebug console.debug进行输出...)
和加载任何html页面:
$.get('http://stackoverflow.com/', function(page){
$(page).find('a[href]').each(function(){
console.debug(this.href);
});
});
在这个函数中使用了另一个each函数,我认为在链接方法时会更清晰。
发布于 2009-04-21 17:47:18
语言: C#
class Program
{
static void Main(string[] args)
{
var web = new HtmlWeb();
var doc = web.Load("http://www.stackoverflow.com");
var nodes = doc.DocumentNode.SelectNodes("//a[@href]");
foreach (var node in nodes)
{
Console.WriteLine(node.InnerHtml);
}
}
}
发布于 2009-04-21 16:50:33
语言: Python
from BeautifulSoup import BeautifulSoup
html = "<html><body>"
for link in ("foo", "bar", "baz"):
html += '<a href="http://%s.com">%s</a>' % (link, link)
html += "</body></html>"
soup = BeautifulSoup(html)
links = soup.findAll('a', href=True) # find <a> with a defined href attribute
print links
输出:
[<a href="http://foo.com">foo</a>,
<a href="http://bar.com">bar</a>,
<a href="http://baz.com">baz</a>]
也可以:
for link in links:
print link['href']
输出:
http://foo.com
http://bar.com
http://baz.com
https://stackoverflow.com/questions/773340
复制相似问题