Я пытался получить все названия ресторанов на сайте https://www.yemeksepeti.com/en/istanbul/zeytinburnu-merkezefendi-mah-cevizlibag
используя пакет HtmlAgilityPack:
Uri url = new Uri("https://www.yemeksepeti.com/en/istanbul/zeytinburnu-merkezefendi-mah-cevizlibag");
WebClient client = new WebClient();
string downloadString = client.DownloadString(url);
HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument();
document.LoadHtml(downloadString);
HtmlNodeCollection nodes = document.DocumentNode.SelectNodes("//a[@class='restaurantName withTooltip']");
foreach(var node in nodes) {
listBox1.Items.Add(node.InnerText);
}
Этот работает хорошо!
Но с другой стороны, я действительно хочу погрузиться глубже и получить MainCuisineName
ниже:
<a class="restaurantName withTooltip" href="/en/meshur-merkez-kofte-zeytinburnu-merkezefendi-mah-istanbul" target="_parent" data-hasqtip="1">
<span data-tooltip="{"MainCuisineName":"Meatball""cc_genel.gif}">Meşhur Merkez Köfte, Zeytinburnu (Merkezefendi Mah.)</span>
</a>
Как я могу получить MainCuisineName
, который является "Фрикаделька", из
тот же URL? Я попробовал это:
HtmlNodeCollection nameNodes = doc.DocumentNode.SelectNodes("//*[@class='restaurantName withTooltip']/span='MainCuisineLabelName'");
foreach(var node in nameNodes) {
listBox1.Items.Add(node.InnerText);
}
Но, по-видимому, он не работает.
Есть предложения?