页面加载完成后c#下载html字符串

迈克·朗(Mike Long)

我正在尝试使用循环来下载一堆html页面并在内部数据中剪贴。但是,这些页面在加载时会运行一些javascript作业。因此,我认为使用webclient可能不是一个不错的选择。但是,如果我使用如下所示的webBrowser。它在循环中的第一次调用后返回空的html字符串。

WebBrowser wb = new WebBrowser();
        wb.ScrollBarsEnabled = false;
        wb.ScriptErrorsSuppressed = true;
        wb.Navigate(url);
        while (wb.ReadyState != WebBrowserReadyState.Complete) { Application.DoEvents(); Thread.Sleep(1000); }
        html = wb.Document.DomDocument.ToString();
亚历克斯·K。

您是正确的,WebClient和所有其他HTTP客户端接口将完全忽略JavaScript;毕竟它们都不是浏览器。

你要:

var html = wb.Document.GetElementsByTagName("HTML")[0].OuterHtml;

请注意,如果您通过WebBrowser加载,则无需抓取原始标记。您可以使用DOM等方法GetElementById/TagName

while循环非常VBScript,有一个DocumentCompleted事件应该将代码连接到其中。


private void Whatever()
{
    WebBrowser wb = new WebBrowser();
    wb.DocumentCompleted += Wb_DocumentCompleted;

    wb.ScriptErrorsSuppressed = true;
    wb.Navigate("http://stackoverflow.com");
}

private void Wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    var wb = (WebBrowser)sender;

    var html = wb.Document.GetElementsByTagName("HTML")[0].OuterHtml;
    var domd = wb.Document.GetElementById("copyright").InnerText;
    /* ... */
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

页面加载完成后c#下载html字符串

来自分类Dev

C#将HTML页面下载到字符串asp.net

来自分类Dev

页面加载完成后执行javascript

来自分类Dev

页面加载完成后调用函数

来自分类Dev

页面其余部分加载完成后,延迟加载html5视频

来自分类Dev

页面加载完成后预加载大图像

来自分类Dev

页面加载完成后预加载大图像

来自分类Dev

C#将字符串写入WebBrowser控件中已加载的html页面中%name%中定义的变量

来自分类Dev

页面加载完成后打开css弹出窗口

来自分类Dev

通知显示完全完成后重新加载页面

来自分类Dev

Ajax请求在循环内,完成后重新加载页面

来自分类Dev

整个页面加载完成后才执行JS

来自分类Dev

加载页面时从指令编译HTML字符串

来自分类Dev

在C#中以编程方式更新连接字符串后重新加载web.config

来自分类Dev

对C#中的架构进行验证后,xml字符串未加载到数据集

来自分类Dev

C#等待javascript完成后再检索HTML控制台应用程序

来自分类Dev

如何限制 C# 中 HTML 文档的下载字符串的大小?

来自分类Dev

编写了缩短数组中字符串的函数。函数完成后不更改值

来自分类Dev

JavaScript中的自动转换:完成后,是否应该将字符串转换为数字,例如stringvar = 1 + stringvar?

来自分类Dev

下载完成后获取消息

来自分类Dev

页面加载完成后无法滚动带有空格键的页面

来自分类Dev

Javascript:页面加载完成后运行功能,脚本正在异步加载

来自分类Dev

C# 空 WebClient 下载字符串

来自分类Dev

使用Threadpool下载字符串并等待下载完成

来自分类Dev

线程完成后C#更新UI

来自分类Dev

使用 C# 从 Html 页面中提取字符串

来自分类Dev

在页面加载/下载时将文本字符串附加到图像文件的末尾

来自分类Dev

完成正则表达式匹配后删除字符串的不匹配部分-C#

来自分类Dev

动画完成后更改页面

Related 相关文章

  1. 1

    页面加载完成后c#下载html字符串

  2. 2

    C#将HTML页面下载到字符串asp.net

  3. 3

    页面加载完成后执行javascript

  4. 4

    页面加载完成后调用函数

  5. 5

    页面其余部分加载完成后,延迟加载html5视频

  6. 6

    页面加载完成后预加载大图像

  7. 7

    页面加载完成后预加载大图像

  8. 8

    C#将字符串写入WebBrowser控件中已加载的html页面中%name%中定义的变量

  9. 9

    页面加载完成后打开css弹出窗口

  10. 10

    通知显示完全完成后重新加载页面

  11. 11

    Ajax请求在循环内,完成后重新加载页面

  12. 12

    整个页面加载完成后才执行JS

  13. 13

    加载页面时从指令编译HTML字符串

  14. 14

    在C#中以编程方式更新连接字符串后重新加载web.config

  15. 15

    对C#中的架构进行验证后,xml字符串未加载到数据集

  16. 16

    C#等待javascript完成后再检索HTML控制台应用程序

  17. 17

    如何限制 C# 中 HTML 文档的下载字符串的大小?

  18. 18

    编写了缩短数组中字符串的函数。函数完成后不更改值

  19. 19

    JavaScript中的自动转换:完成后,是否应该将字符串转换为数字,例如stringvar = 1 + stringvar?

  20. 20

    下载完成后获取消息

  21. 21

    页面加载完成后无法滚动带有空格键的页面

  22. 22

    Javascript:页面加载完成后运行功能,脚本正在异步加载

  23. 23

    C# 空 WebClient 下载字符串

  24. 24

    使用Threadpool下载字符串并等待下载完成

  25. 25

    线程完成后C#更新UI

  26. 26

    使用 C# 从 Html 页面中提取字符串

  27. 27

    在页面加载/下载时将文本字符串附加到图像文件的末尾

  28. 28

    完成正则表达式匹配后删除字符串的不匹配部分-C#

  29. 29

    动画完成后更改页面

热门标签

归档