Во время выполнения кода он говорит, что 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-соединения загружается с небольшая задержка Первая страница загружается, а затем идет содержание.