C#HAP "System.Net.WebException:リモート名を解決できませんでした"例外


質問

こんにちは、私はeBayからいくつかのデータを取得するためにこのコードを使用しています。

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

これはパースされるリンクです: http : //www.ebay.com/sch/i.html? _nkw = gruen+-sara+-quartz+-embassy+-bob+-robert+-elephants+-adidas&_sacat = 0&LH_Auction =1 &_dmpt = Wristwatches&_odkw = gruen+- sara + -quartz + -embassy + -bob + -robert + -elephants + -adidas&_osacat = 1&_trksid = p3286.c0.m270.l1313ファイルに次の例外が書き込まれています

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

私はここにいくつかの投稿をチェックした。この問題を解決することはできませんでした。これをどうすれば解決できますか?なにか提案を ??前もって感謝します :)

受け入れられた回答

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

stringではなくnodeオブジェクトを返します。このオブジェクトのプロパティの1つを使用する必要があります。これは、 hreflinkようなものであり、それに応じて使い分けられる可能性があります。


人気のある回答

FQDNとパスの間にスラッシュを追加するのではなく、文字列にHtmlAgilityPack.HtmlNodeCollectionを追加していますが、これはうまくいきません。





ライセンスを受けた: CC-BY-SA
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ