我正在尝试从网站上抓取产品名称。奇怪的是,我似乎只能抓取随机的12个项目。我尝试了HtmlAgilityPack和HTTPClient,但都得到了相同的随机结果。这是我的HtmlAgilityPack代码:
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())
;
[更新1] @CodingKuma建议我尝试使用Selenium Webdriver。这是我的代码,使用了Selenium Webdriver:
[UPDATE 1] @CodingKuma建議我嘗試使用Selenium Webdriver。這是我的程式碼,使用了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();
我尝试了这段代码但仍然没有运气。那个页面上有20多个项目,但我似乎只得到了随机的12个。如何才能爬取该网站上的所有项目?