有很多网站使用这种(在我看来)令人烦恼的“无限滚动”样式。例如,像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?
(我知道我可以使用Tumblr和Twitter的API,但我只是想用HtmlAgilityPack尝试一些有趣的黑客技巧。)