C # HAP "System.Net.WebException: Die remote Name konnte nicht aufgelöst werden" Ausnahme

c# html-agility-pack

Frage

Hi Ich benutze diesen Code, um einige Daten von Ebay zu bekommen.

string url = textBox1.Text;
get_all_link(url);
private void get_all_link(string url)
{
    var webGet = new HtmlWeb();

    try
    {
        var document = webGet.Load(url);

        MessageBox.Show(url);
        var metaTags = document.DocumentNode.SelectNodes("//div[@class='ttl']/a");
        if (metaTags != null)
        {
            foreach (var tag in metaTags)
            {
                string link = tag.Attributes["href"].Value;
                links.Add(link);
            }
        }

        var next = document.DocumentNode.SelectNodes("//td[@class='botpg-next']/a");
        if (next != null)
        {
            string link = "http://www.ebay.com" + next;
            get_all_link(link);
        }
        else return;
    }
    catch (Exception f)
    {
        MessageBox.Show(f.ToString());

        TextWriter tw = new StreamWriter("data.txt");
        tw.WriteLine(f.ToString());
        tw.Close();
    }
}

Dies ist der zu analysierende Link: http://www.ebay.com/sch/i.html?_nkw=gruen+sara+-quartz+-embassy+-bob+robert+e-elephants+-adidas&_sacat=0&LH_Auction=1&_dmpt=Wristwatches&_odkw=gruen+- sara + -quarz + -embassy + -bob + -robert + -elefanten + -adidas & _osacat = 1 & _trksid = p3286.c0.m270.l1313 und schreibt folgende Ausnahme in die Datei

string url = textBox1.Text;
get_all_link(url);
private void get_all_link(string url)
{
    var webGet = new HtmlWeb();

    try
    {
        var document = webGet.Load(url);

        MessageBox.Show(url);
        var metaTags = document.DocumentNode.SelectNodes("//div[@class='ttl']/a");
        if (metaTags != null)
        {
            foreach (var tag in metaTags)
            {
                string link = tag.Attributes["href"].Value;
                links.Add(link);
            }
        }

        var next = document.DocumentNode.SelectNodes("//td[@class='botpg-next']/a");
        if (next != null)
        {
            string link = "http://www.ebay.com" + next;
            get_all_link(link);
        }
        else return;
    }
    catch (Exception f)
    {
        MessageBox.Show(f.ToString());

        TextWriter tw = new StreamWriter("data.txt");
        tw.WriteLine(f.ToString());
        tw.Close();
    }
}

Ich habe einen Beitrag hier überprüft. aber konnte dieses Problem nicht lösen. Wie kann ich das lösen ?? Irgendein Vorschlag ?? Danke im Voraus :)

Akzeptierte Antwort

var next = document.DocumentNode.SelectNodes("//td[@class='botpg-next']/a");

Gibt ein node und keine string . Sie müssen eine der Eigenschaften dieses Objekts verwenden, die wahrscheinlich ähnlich wie href oder link und diese entsprechend verwenden.


Beliebte Antwort

Sie fügen keinen Schrägstrich zwischen dem HtmlAgilityPack.HtmlNodeCollection und dem Pfad hinzu, und Sie fügen einer HtmlAgilityPack.HtmlNodeCollection eine HtmlAgilityPack.HtmlNodeCollection hinzu, die nicht funktioniert.




Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum