有很多网站使用这种(imo)烦人的“无限滚动”风格。例如 tumblr、twitter、9gag 等网站。
我最近尝试使用 HtmlAgilityPack 以编程方式从这些网站上抓取一些图片。像这样:
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load(url);
var primary = doc.DocumentNode.SelectNodes("//img[@class='badge-item-img']");
var picstring = primary.Select(r => r.GetAttributeValue("src", null)).FirstOrDefault();
这很好用,但是当我尝试从某些站点加载 HTML 时,我注意到我只返回了少量内容(比如说前 10 个“帖子”或“图片”,或者其他什么......)我想知道是否可以在 c# 中模拟页面的“向下滚动到底部”。
这不仅仅是当我以编程方式加载 html 时,当我只是去像 tumblr 这样的网站,我检查 firebug 或只是“查看源代码”时,我希望所有内容都会在某个地方,但很多似乎用 javascript 隐藏/插入。只有在我的屏幕上实际可见的内容才会出现在 HTML 源代码中。
所以我的问题是:是否可以模拟无限向下滚动到一个页面,并使用 c# 加载该 HTML(最好)?
(我知道我可以将 API 用于 tumblr 和 twitter,但我只是想用 HtmlAgilityPack 来做一些有趣的黑客活动)