如何抓取链接列表中的属性内容 (HTML)
How to scrape the contents of attributes in list of links (HTML)
我正在尝试从 this website 中抓取建筑物名称、地址等。
我曾尝试使用 import.io, Webharvey 等工具,但问题是它只允许我抓取 link 标签中的文本。
下面是我想要使用的相关部分的源代码示例。我想要的是一种抓取文本以及 'data-original-title'、'the data content' 和其他属性数据的方法。
<div class="container">
<ul class="c-buildingbar">
<li><span>Buildings:</span></li>
<li><a class="acc" data-toggle="popover" data-placement="top" data-original-title="Pavillon Des Soeurs Grises" data-content="1190 Guy Street" href="?building="></a></li>
<li><a class="acc" data-toggle="popover" data-placement="top" data-original-title="B Building" data-content="2160 Bishop" href="?building=B">B</a></li>
...
</div>
我通常不会在 C# 中工作,但这应该对你有用:
{
HtmlAgilityPack.HtmlWeb web = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load ("http://www.concordia.ca/maps/sgw-campus.html");
foreach (HtmlNode row in doc.DocumentNode.SelectNodes("//li[contains(@class,'acc')]/a"))
{
Console.WriteLine(row.SelectSingleNode("/@data-original-title").Value);
Console.WriteLine(row.SelectSingleNode("/@data-content").Value);
}
Console.ReadKey();
}
虽然我不能自己测试它,但这应该会给你一些有用的东西:)
我正在尝试从 this website 中抓取建筑物名称、地址等。
我曾尝试使用 import.io, Webharvey 等工具,但问题是它只允许我抓取 link 标签中的文本。
下面是我想要使用的相关部分的源代码示例。我想要的是一种抓取文本以及 'data-original-title'、'the data content' 和其他属性数据的方法。
<div class="container">
<ul class="c-buildingbar">
<li><span>Buildings:</span></li>
<li><a class="acc" data-toggle="popover" data-placement="top" data-original-title="Pavillon Des Soeurs Grises" data-content="1190 Guy Street" href="?building="></a></li>
<li><a class="acc" data-toggle="popover" data-placement="top" data-original-title="B Building" data-content="2160 Bishop" href="?building=B">B</a></li>
...
</div>
我通常不会在 C# 中工作,但这应该对你有用:
{
HtmlAgilityPack.HtmlWeb web = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load ("http://www.concordia.ca/maps/sgw-campus.html");
foreach (HtmlNode row in doc.DocumentNode.SelectNodes("//li[contains(@class,'acc')]/a"))
{
Console.WriteLine(row.SelectSingleNode("/@data-original-title").Value);
Console.WriteLine(row.SelectSingleNode("/@data-content").Value);
}
Console.ReadKey();
}
虽然我不能自己测试它,但这应该会给你一些有用的东西:)