2017-05-18 5 views
0

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

Ausnahmedaten: enter image description here

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 
+0

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

+0

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

+0

Load Takes auslöst eine URL nicht roh html. Verwenden Sie LoadHtml, um HTML aus einer Zeichenfolge zu laden. –

Antwort

0

ich die falsche Methode wurde verwendet. Load wird versuchen, die Website herunterzufahren, LoadHtml schließt den bereits geladenen Inhalt aus.