是否可以使用 xpath 抓取 div 下的标签?
Is it possible to scrape the tags under a div with xpath?
考虑以下几点:
<div class="name" data-starred-src="A Full Url"
data-non-starred-src="Some Other URL" data-reorderid="SomeID"
data-fbid="SomeID" id="SomeID" style="position: absolute;
margin-top: 0px; margin-left: 0px;">
这是一个具有许多不同属性的 div 元素。我要抓取的是 "data-starred-src"
下的 URL
是否可以不完整地抓取这个HTML?
正在尝试使用 xpath 和 HtmlAgilityPack 执行此操作。
XPath 可以返回属性,但是 HtmlAgilityPack 似乎不支持返回属性值 directly.You 可以尝试先 select 包含目标属性的元素,然后调用 GetAttributeValue()
在元素上获取实际的属性值,例如:
var raw = @"<div class='name' data-starred-src='A Full Url'
data-non-starred-src='Some Other URL' data-reorderid='SomeID'
data-fbid='SomeID' id='SomeID' style='position: absolute;
margin-top: 0px; margin-left: 0px;'></div>";
var doc = new HtmlDocument();
doc.LoadHtml(raw);
var div = doc.DocumentNode.SelectSingleNode("//div[@data-starred-src]");
var url = div.GetAttributeValue("data-starred-src", "");
Console.WriteLine(url);
输出:
A Full Url
这对你有用。
response = """"<div class="name" data-starred-src="A Full Url"
data-non-starred-src="Some Other URL" data-reorderid="SomeID"
data-fbid="SomeID" id="SomeID" style="position: absolute;
margin-top: 0px; margin-left: 0px;">"""
response_sel = Selector(response)
url = response_sel.xpath('//div[@data-starred-src]/@@data-starred-src')
考虑以下几点:
<div class="name" data-starred-src="A Full Url"
data-non-starred-src="Some Other URL" data-reorderid="SomeID"
data-fbid="SomeID" id="SomeID" style="position: absolute;
margin-top: 0px; margin-left: 0px;">
这是一个具有许多不同属性的 div 元素。我要抓取的是 "data-starred-src"
下的 URL是否可以不完整地抓取这个HTML?
正在尝试使用 xpath 和 HtmlAgilityPack 执行此操作。
XPath 可以返回属性,但是 HtmlAgilityPack 似乎不支持返回属性值 directly.You 可以尝试先 select 包含目标属性的元素,然后调用 GetAttributeValue()
在元素上获取实际的属性值,例如:
var raw = @"<div class='name' data-starred-src='A Full Url'
data-non-starred-src='Some Other URL' data-reorderid='SomeID'
data-fbid='SomeID' id='SomeID' style='position: absolute;
margin-top: 0px; margin-left: 0px;'></div>";
var doc = new HtmlDocument();
doc.LoadHtml(raw);
var div = doc.DocumentNode.SelectSingleNode("//div[@data-starred-src]");
var url = div.GetAttributeValue("data-starred-src", "");
Console.WriteLine(url);
输出:
A Full Url
这对你有用。
response = """"<div class="name" data-starred-src="A Full Url"
data-non-starred-src="Some Other URL" data-reorderid="SomeID"
data-fbid="SomeID" id="SomeID" style="position: absolute;
margin-top: 0px; margin-left: 0px;">"""
response_sel = Selector(response)
url = response_sel.xpath('//div[@data-starred-src]/@@data-starred-src')