私はウェブサイトから製品名を掻き集めようとしています。奇妙なことに、私は無作為に12項目を掻き集めるようだ。私はHtmlAgilityPackとHTTPClientの両方を試してみましたが、私は同じランダムな結果を得ています。HtmlAgilityPack&Selenium Webdriverはランダムな結果を返します
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私はセレンwebdriverをしてみてください提案:ここにHtmlAgilityPackのための私のコードです。私のコードは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。そのサイトのすべてのアイテムをどのように削り取ることができますか?
異なるユーザーエージェントを試してみませんか?他にはajaxがロードされていますか? –
このページはスクロールして読み込まれるため、スクレーパーは人間ではありません。 –
@ DanielA.White他にどのようなエージェントをお勧めしますか? –