对于个人使用的.net项目,我正在尝试加载和解析skyscanner.net搜索结果页面。我知道Skyscanner有这些任务的API,但似乎没有免费的个人许可证可供使用。
问题是Skyscanner需要很长时间才能完成搜索过程,因此使用HtmlAgilityPack加载文档会导致页面没有我正在寻找的内容。
我尝试使用WebBrowser对象及其事件DocumentCompleted,但似乎在将实际搜索结果加载到页面之前触发了事件。
那么,有没有办法加载页面,等待javascript异步脚本完全填满页面,然后让html解析?
答案 0 :(得分:1)
您可以使用PhantomJs。我有这个问题,但没有找到解决我问题的方法。我在 This Article 中使用PhantomJs并在10秒后获取加载页面。在我看来,您的问题的最佳解决方案是该条款。
答案 1 :(得分:0)
正如你所说,这是一个个人项目,那么我将从PhantomJS开始:
它基本上是没有前端的Chrome副本,可通过API控制。
您可能可以获取该网站的副本,运行JavaScript,然后将最终HTML的副本提取到Html-Agility-Pack。
就目前而言,我认为你自己使用Html-Agility-Pack会遇到问题,因为它只是用来解析静态html的块。