【发布时间】:2020-01-07 12:18:57
【问题描述】:
在运行代码时,它说ProductListPage 为空,并且在删除错误后不会继续前进。
任何想法如何解决这个问题?等到找到//div[@class='productContain padb6']//div[@class='large-4 medium-4 columns']/a 或者别的什么?
这是我当前的代码:
HtmlDocument htmlDoc = new HtmlWeb().Load("https://example.com/");
HtmlNodeCollection ProductListPage = htmlDoc.DocumentNode.SelectNodes("//div[@class='productContain padb6']//div[@class='large-4 medium-4 columns']/a");
foreach (HtmlNode src in ProductListPage)
{
htmlDoc = new HtmlWeb().Load(src.Attributes["href"].Value);
HtmlNodeCollection LinkTester = htmlDoc.DocumentNode.SelectNodes("//div[@class='row padt6 padb4']//a");
if (LinkTester != null)
{
foreach (var dllink in LinkTester)
{
string LinkURL = dllink.Attributes["href"].Value;
Console.WriteLine(LinkURL);
string ExtractFilename = LinkURL.Substring(LinkURL.LastIndexOf("/"));
var DLClient = new WebClient();
DLClient.DownloadFileAsync(new Uri(LinkURL), @"C:\temp\" + ExtractFilename);
}
}
}
编辑:
代码似乎在没有 VPN 连接的情况下工作,但它不适用于 VPN。我有使用 Python 和 BeautifulSoup 的替代方案,无论 VPN 连接如何,它都能正常工作。有什么想法为什么 C# 和 htmlAgilityPack 不能解决问题吗?
EDIT2:
我注意到 VPN 连接页面的加载稍有延迟。第一个页面正在加载,然后是内容。
【问题讨论】:
-
这比 c# 更直观。请更新您的帖子以反映这一点
-
糟糕,抱歉。这里是 C#
标签: c# web-scraping web-crawler html-agility-pack