相关疑难解决方法(0)

CefSharp和框架,仅从第一帧检索HTML

pcpao.org/general.php?strap=152814186280001650

在尝试从该站点获取完整的HTML时,.GetSourceAsync和.ViewSource都只显示'frameset'HTML.使用ShowDevTools选项,完整的HTML数据包含在元素集合和Chrome-devtools的Sources中.

我在网页加载后运行这个,但它应该都在那里,因为它在开发工具中?

从导航网站获取完整的HTML,我缺少什么.我怀疑这与帧有关,但经过一个小时的谷歌搜索和阅读旧消息,我看到这只是切向提到.

的WinForms

  package id="cef.redist.x64" version="3.2526.1362" targetFramework="net46"
  package id="cef.redist.x86" version="3.2526.1362" targetFramework="net46"
  package id="CefSharp.Common" version="47.0.3" targetFramework="net46"
  package id="CefSharp.WinForms" version="47.0.3" targetFramework="net46"
Run Code Online (Sandbox Code Playgroud)

html frames cefsharp

3
推荐指数
1
解决办法
4064
查看次数

从 Cefsharp 浏览器获取 HTML

我在 WinForm 项目中使用 CefSharp v55.0。页面加载后,我想从中获取 HTML 代码。为此,我正在使用它:

private void WebBrowserFrameLoadEnded(object sender, FrameLoadEndEventArgs e)
{
    if (e.Frame.IsMain)
    {
        test.ViewSource();
        test.GetSourceAsync().ContinueWith(code =>
        {
            var html = code.Result;
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

对于交叉检查,我还调用了 test.ViewSource() 方法,以查看 GetSourceAsync 方法是否正在获取整个代码。

不幸的是,代码是不同的。ViewSource 正在获取整个代码,但 GetSourceAsync 没有通过页面中生成的 javascript 获取代码。

请指导我获取页面源代码的方法,例如ViewSource,或者告诉我如何捕获此ViewSource方法的临时文件。

干杯。

c# webbrowser-control chromium-embedded cefsharp

3
推荐指数
1
解决办法
7368
查看次数

无法获取浏览器网页的 HTML 源,异步到同步问题

Visual Studio 2017、Windows 10、.NET Framework 4.8、CefSharp WinForms 83.4.20、平台目标 x64

创建了新的非常简单的 CefSharp Windows 窗体应用程序。我无法获取网页的 html 源代码。我想我已经查看了 StackOverflow 上的每个 CefSharp 和异步同步问题 - 尝试了很多解决方案 - 我的头已经变得糊涂了。这是我看到的第一个问题 - 我也有同样的问题。

从 CefSharp Web 浏览器获取 HTML 源代码

'浏览器.ViewSource();' 确实会弹出一个记事本,其中包含网页的源代码。但是当我尝试使用源代码获取字符串时 - 任务似乎永远不会运行。运行以获取网页源的任务显示 ---> Status = WaitingForActivation ---> 并且永远不会返回源。

我尝试过异步到同步的转换 - 可能有十种不同的方式。没有工作。一个 StackOverflow 解决方案建议使用 Application.DoEvents() - 所以我什至尝试过。

希望有人有一些想法。这个浏览器似乎有很大的潜力 - 但我需要获取网页源 html。

using System;
using System.Threading.Tasks;
using System.Windows.Forms;
using CefSharp;
using CefSharp.WinForms;
using System.Diagnostics;
namespace Test1
{
    public partial class Form1 : Form
    {
        public ChromiumWebBrowser browser;
        public Form1() …
Run Code Online (Sandbox Code Playgroud)

c# asynchronous async-await cefsharp

0
推荐指数
1
解决办法
2738
查看次数