【问题标题】:Opening a web page and wait for values to be updated by jquery in c#打开网页并等待 c# 中的 jquery 更新值
【发布时间】:2018-02-12 06:32:23
【问题描述】:

我正在阅读一些网页的内容,但其中一个使用 jquery 更新一些值时遇到了问题。有什么方法可以在该页面稍等片刻即可阅读内容?

我目前正在使用HtmlAgilityPack 获取网页内容。

HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load(myUrl);

var data = doc.DocumentNode.SelectSingleNode("SOME-SELECTOR")?.InnerText.ToString();

尝试使用BrowserDelay,但它对我不起作用。

web.BrowserDelay = new TimeSpan(0, 0, 5);

【问题讨论】:

  • 在运行第 3 行之前是否需要等待第 2 行完成?如果是这样,您是否可以使用 C# await 让 web.Load() 在第 3 行处理之前完成?
  • 或者你是说 myUrl 的 html 内容在页面加载 5 秒后才处于期望的状态?
  • 其实web.Load(myUrl)应该采取行动然后等待3秒获取内容填入doc。所以等待的东西对这种情况没有好处。 @DanSorensen

标签: javascript c# jquery


【解决方案1】:

检索到的 Web 文档中的 JavaScript 没有被 HtmlWeb() 执行。等待不会触发所需的状态。必须通过您自己的机制或通过控制将处理 JavaScript 以检索您的数据的无头浏览器来执行 JavaScript。

请参阅此相关问题:Screen Scraping Web Page After Delay 了解适当的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-16
    • 2013-06-19
    相关资源
    最近更新 更多