Ich versuche, einen einfachen Bildschirm Kratzen von Wikipedia mit dem HTML-Agility-Paket zu tun. Ich kopierte das Format eines richtigen Links, der in meinem Browser funktioniert, https://en.wikipedia.org/wiki/Nanticoke%2c_Pennsylvania < - Funktioniert im Browser Allerdings, wenn ich diesen Code verwende, bekomme ich die Ausnahme für ungültige Pfadzeichen aus der Klasse WebClient.WebClient Wikipedia illegale Pfad Zeichen selbst nach URL codieren
Original-Adresse: https://en.wikipedia.org/wiki/Nanticoke,_Pennsylvania
Update - die Website zu einem String-Variablen Download vor html.Load() aufrufen, nicht die Ausnahme auslösen. Ich erhalte illegalen Weg Zeichen auf html.Load()
var client = new WebClient();
var address = $"https://en.wikipedia.org/wiki/{HttpUtility.UrlEncode($"{name},_{state}")}";
HtmlAgilityPack.HtmlDocument html = new HtmlAgilityPack.HtmlDocument();
html.Load(client.DownloadString(address)); //Exception thrown here
Können Sie Ihre Frage bearbeiten, um a) die tatsächliche URL anzuzeigen, die generiert wird, und b) die tatsächliche Ausnahme, die Sie erhalten? – stuartd
Sie haben die tatsächliche URL NACH der Codierung nicht veröffentlicht. Verschieben Sie auch 'client.DownloadString' aus' html.Load' und weisen Sie sie einer String-Variablen zu, damit wir feststellen können, ob es sich um ein Problem mit der URL handelt oder die Antwort von Wikipedia eine Exception in HAP – ColinM
Load Takes auslöst eine URL nicht roh html. Verwenden Sie LoadHtml, um HTML aus einer Zeichenfolge zu laden. –