Привет, я использую этот код для получения данных с 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 + -emassy + -bob + -robert + -elephants + -adidas & _osacat = 1 & _trksid = p3286.c0.m270.l1313 и записывает в файл следующее исключение
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
Я проверил несколько сообщений здесь. но не смог решить эту проблему. Как я могу это решить? Любое предложение ?? Заранее спасибо :)
var next = document.DocumentNode.SelectNodes("//td[@class='botpg-next']/a");
Возвращает объект node
а не string
. Вам нужно использовать одно из свойств этого объекта, вероятно, должно быть что-то вроде href
или link
и использовать его соответствующим образом.
Вы не добавляете косую черту между FQDN и HtmlAgilityPack.HtmlNodeCollection
, и вы добавляете HtmlAgilityPack.HtmlNodeCollection
в строку, которая не будет работать.