learun开发社区 - 力软快速开发平台官方论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 579|回复: 3

用C#从IE浏览器中获取HTML文档

[复制链接]

3

主题

4

帖子

40

积分

新手上路

Rank: 1

积分
40
发表于 2019-5-16 09:56:00 | 显示全部楼层 |阅读模式

这篇文章描述如何获得IE浏览器当前网页的HTML文档。

  • Create a console application in any version of Visual Studio using .Net version 1|2|3|3.5.
  • Add two Com object references which will allow us to manipulate IE.

  • 用 Visual Studio 的任意版本建立一个控制台程序。
  • 添加2个COM对象引用用来操作IE

  • Note the code sample below does not require the using directive for the objects, so just add the code as is.
  • Then find the instances of IE and extract the document:
  • 添加下面代码
  • 打开IE获取HTML文档
  1. SHDocVw.ShellWindows shellWindows
  2. = new SHDocVw.ShellWindowsClass();

  3. string filename;

  4. foreach (SHDocVw.InternetExplorer ie in shellWindows)
  5. {
  6. filename
  7. = Path.GetFileNameWithoutExtension(ie.FullName).ToLower();

  8. if (filename.Equals("iexplore"))
  9. {
  10. Console.WriteLine("Web Site   : {0}", ie.LocationURL);

  11. mshtml.IHTMLDocument2 htmlDoc
  12. = ie.Document as mshtml.IHTMLDocument2;

  13. Console.WriteLine("   Document Snippet: {0}",
  14. ( ( htmlDoc != null ) ? htmlDoc.body.outerHTML.Substring(0, 40)
  15. : "***Failed***" ));
  16. Console.WriteLine("{0}{0}", Environment.NewLine);
  17. }
  18. }
复制代码

程序截图:

代码:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace ConsoleApplication1
{
   
class Program
   
{
        
static void Main(string[] args)
         {
            
SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindowsClass();
            
string filename;
            
foreach (SHDocVw.InternetExplorer ie in shellWindows)
             {
               
filename = Path.GetFileNameWithoutExtension(ie.FullName).ToLower();
               
if (filename.Equals("iexplore"))
                 {
                    
Console.WriteLine("Web Site    : {0}", ie.LocationURL);
                    
mshtml.IHTMLDocument2 htmlDoc = ie.Document as mshtml.IHTMLDocument2;
                    
Console.WriteLine("    文件 Snippet: {0}", ((htmlDoc != null) ? htmlDoc.body.outerHTML.Substring(0, 40) : "***Failed***"));
                    
Console.WriteLine("{0}{0}", Environment.NewLine);
                 }
             }
         }
     }
}
回复

使用道具 举报

0

主题

8

帖子

173

积分

注册会员

Rank: 2

积分
173
发表于 2019-5-21 06:34:25 | 显示全部楼层
赞,通俗易懂
回复

使用道具 举报

0

主题

5

帖子

135

积分

注册会员

Rank: 2

积分
135
发表于 2019-5-28 09:39:30 | 显示全部楼层
mark了
回复

使用道具 举报

0

主题

3

帖子

134

积分

注册会员

Rank: 2

积分
134
发表于 2019-5-31 06:02:44 | 显示全部楼层
学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|learun开发社区 - 力软快速开发平台官方论坛 ( 沪ICP备14034717号 )

GMT+8, 2020-4-4 23:59 , Processed in 0.150192 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表