我有一个网络浏览器,在 Visual Studio
中有一个标签,基本上我想做的是从另一个网页上抓取一个部分。
我尝试使用 WebClient.DownloadString
和 WebClient.DownloadFile
,它们都在 JavaScript 加载内容之前给了我网页的源代码。我的下一个想法是使用网络浏览器工具,并在页面加载后调用 webBrowser.DocumentText
但它不起作用,它仍然为我提供页面的原始来源。
有没有一种方法可以获取页面帖子 JavaScript
加载?
原文由 Prokzy 发布,翻译遵循 CC BY-SA 4.0 许可协议
问题是浏览器通常会执行 javascript 并且会导致更新的 DOM。除非您可以分析 javascript 或拦截它使用的数据,否则您将需要像浏览器一样执行代码。过去我遇到过同样的问题,我使用 selenium 和 PhantomJS 来渲染页面。呈现页面后,我将使用 WebDriver 客户端导航 DOM 并检索我需要的内容,发布 AJAX。
在高层次上,这些是步骤:
Install-Package Selenium.WebDriver
以下是 phantomjs webdriver 的示例用法:
有关 selenium、phantomjs 和 webdriver 的更多信息,请访问以下链接:
http://docs.seleniumhq.org/
http://docs.seleniumhq.org/projects/webdriver/
http://phantomjs.org/
编辑:更简单的方法
似乎有一个 phantomjs 的 nuget 包,这样你就不需要集线器了(我使用集群以这种方式进行大量报废):
安装网络驱动程序:
安装嵌入式exe:
更新代码: