Je reçois une erreur "caractères illégaux dans le chemin" dans ce code. J'ai mentionné "Erreur survenant ici" en tant que commentaire dans la ligne où l'erreur se produit.
var document = htmlWeb.Load(searchUrl);
var hotels = document.DocumentNode.Descendants("div")
.Where(x => x.Attributes.Contains("class") &&
x.Attributes["class"].Value.Contains("listing-content"));
int count = 1;
foreach (var hotel in hotels)
{
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.OptionFixNestedTags = true;
htmlDoc.Load(hotel.InnerText); // Error Occuring Here //
if (htmlDoc.DocumentNode != null)
{
var hotelName = htmlDoc.DocumentNode.SelectNodes("//div[@class='business-container-inner']//div[@class='business-content clearfix']//div[@class='business-name-wrapper']//h3[@class='business-name fn org']//div[@class='srp-business-name']//a[0]");
foreach (var name in hotelName)
{
Console.WriteLine(name.InnerHtml);
}
}
}
Vous devez utiliser la méthode LoadHtml
avec charge une chaîne. Load
méthode de chargement se charge depuis le fichier
htmlDoc.LoadHtml(hotel.InnerText);
Cela signifie simplement que vous essayez de charger un fichier avec un caractère non valide dans le chemin / nom du fichier .
L'erreur est ici:
htmlDoc.Load(hotel.InnerText);
..car cette surcharge attend le chemin du fichier:
public void Load(string path)
Utilisez LoadHtml
pour charger un fragment HTML:
public void LoadHtml(string html)