Próbuję skrobać nazwy produktów ze strony internetowej. Dziwnie, wydaje mi się, że tylko zeskrobuję losowo 12 przedmiotów. Próbowałem zarówno HtmlAgilityPack i HTTPClient i otrzymuję te same losowe wyniki. Oto mój kod HtmlAgilityPack:HtmlAgilityPack i Selenium Webdriver zwraca losowe wyniki
using HtmlAgilityPack;
using System.Net.Http;
var url = @"http://www.roots.com/ca/en/men/tops/shirts-and-polos/";
HtmlWeb web = new HtmlWeb();
var doc = web.Load(url, "GET", proxy, new NetworkCredential(PROXY_UID, PROXY_PWD, PROXY_DMN));
var nodes = doc.DocumentNode.Descendants("div")
.Where(div => div.GetAttributeValue("class", string.Empty) == "product-name")
.Select(div => div.InnerText.Trim())
;
[UPDATE 1] @CodingKuma zaproponował staram selen Webdriver. Oto mój kod przy użyciu Selenium Webdriver:
IWebDriver chromeDriver = new ChromeDriver(@"C:\TEMP\Projects\Chrome\chromedriver_win32");
chromeDriver.Url = "http://www.roots.com/ca/en/men/tops/shirts-and-polos/";
var items = chromeDriver.FindElements(By.ClassName("product-name"));
items.Count().Dump();
chromeDriver.Quit();
Próbowałem tego kodu, ale nadal nie ma szczęścia. Na tej stronie znajduje się ponad 20 pozycji, ale wydaje mi się, że otrzymuję tylko losowe 12. Jak mogę zeskrobać wszystkie przedmioty na tej stronie?
spróbuj innego klienta użytkownika? czy inni są załadowani ajaxem? –
Ponieważ ta strona ładuje się jako przewijana, skrobak nie jest człowiekiem. –
@ DanielA.White co inni agenci polecacie? –