错误“HtmlAgilityPack.HtmlNode.SelectSingleNode(...)返回null。” 我的示例代码。
string url = @"http://www.baza-firm.com.pl/?vm=zabrze&pg=2&b_szukaj=szukaj";
HtmlWeb web = new HtmlWeb();
//Process.Start(url); //wyswietlenie strony
var doc1 = web.Load(url);
MessageBox.Show(doc1.DocumentNode.OuterHtml.ToString());
var nazwa = doc1.DocumentNode.SelectSingleNode("//span[@class='przeppoz']").InnerText;
var ulica = doc1.DocumentNode.SelectSingleNode("//div[@itemprop='streetAddress']").InnerText;
var kod_pocztowy = doc1.DocumentNode.SelectSingleNode("//div/span[@itemprop='postalCode']").InnerText;
var miejscowość = doc1.DocumentNode.SelectSingleNode("//div/span[@itemprop='addressLocality']").InnerText;
var wojewodztwo = doc1.DocumentNode.SelectSingleNode("//div/span[@itemprop='addressRegion']").InnerText;
var telefon = doc1.DocumentNode.SelectNodes("//div[@class='divSMV_tel1 clearBoth']");
List<string> lista_tel = new List<string>();
foreach (var node in telefon)
{
lista_tel.Add(node.InnerText);
}
MessageBox.Show("nazwa " + nazwa
+ "\nkod pocztowy " + kod_pocztowy
+ "\nulica " + ulica
+ "\nkod pocztowy " + kod_pocztowy
+ "\nmiejscowość " + miejscowość
+ "\nwojewództwo " + wojewodztwo
+ "\ntelefon " + lista_tel[0].ToString());
以前工作过的现在显示一个空白页面。为什么不能使用敏捷包?
答案 0 :(得分:0)
您的服务器返回404 - Not Found
作为响应状态,但也会返回您期望的html内容。
因此,通过稍微更改下载代码,您的解析代码可以正常工作......
string url = @"http://www.baza-firm.com.pl/?vm=zabrze&pg=2&b_szukaj=szukaj";
var doc1 = new HtmlAgilityPack.HtmlDocument();
using (var client = new HttpClient())
{
var resp = await client.GetAsync(url);
MessageBox.Show(resp.StatusCode.ToString());
var html = await resp.Content.ReadAsStringAsync();
doc1.LoadHtml(html);
}
MessageBox.Show(doc1.DocumentNode.OuterHtml.ToString());
.....
......