简体   繁体   中英

C# HAP “System.Net.WebException: The remote name could not be resolved ” exception

Hi I am using this code to get some data from 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();
    }
}

this is the link to be parsed : 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 and it's writing the following exception in file

 System.Net.WebException: The remote name could not be resolved: 'www.ebay.comhtmlagilitypack.htmlnodecollection' at System.Net.HttpWebRequest.GetResponse() at HtmlAgilityPack.HtmlWeb.Get(Uri uri, String method, String path, HtmlDocument doc, IWebProxy proxy, ICredentials creds) in C:\\Source\\htmlagilitypack\\Trunk\\HtmlAgilityPack\\HtmlWeb.cs:line 1446 at HtmlAgilityPack.HtmlWeb.LoadUrl(Uri uri, String method, WebProxy proxy, NetworkCredential creds) in C:\\Source\\htmlagilitypack\\Trunk\\HtmlAgilityPack\\HtmlWeb.cs:line 1563 at HtmlAgilityPack.HtmlWeb.Load(String url, String method) in C:\\Source\\htmlagilitypack\\Trunk\\HtmlAgilityPack\\HtmlWeb.cs:line 1152 at HtmlAgilityPack.HtmlWeb.Load(String url) in C:\\Source\\htmlagilitypack\\Trunk\\HtmlAgilityPack\\HtmlWeb.cs:line 1107 at BackgroundWorker.Form1.get_all_link(String url) in C:\\Documents and Settings\\maruf\\My Documents\\Visual Studio 2008\\Projects\\BackgroundWorker\\BackgroundWorker\\Form1.cs:line 86 

I have checked some post here . but couldn't solve this problem. How can I solve this ?? Any suggestion ?? Thanks in advance :)

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

Returns a node object and not a string . You need to use one of the properties of this object, likely to be somethign like href or link and use this accordingly.

您没有在FQDN和路径之间添加斜杠,而是向字符串添加了HtmlAgilityPack.HtmlNodeCollection ,这是行不通的。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM