是否可以使用 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);

dotnetfiddle demo

输出:

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')