用Windows API如何保存网页内容

火龙 2011-08-02 02:43:16
具体的来说目的就是备份论坛的内容和贴吧里面几万楼的贴子。看到网上说可以用Windows API实现选中文本然后复制的操作,但是找了半天找不到API函数,所以想请教各位如果要这样做用Windows API实现的原理和过程以及涉及的函数是哪些,由于有要翻页的操作,所以想知道网页里面的超链接文本有没有句柄?最后的效果是要实现能够在WORD或者是其他适当的程序中保存备份的东西。希望各位多多帮忙~谢谢啦~
...全文
223 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
火龙 2011-08-02
  • 打赏
  • 举报
回复
嗯MSDN找到需要的资料了,我自己慢慢看吧~
火龙 2011-08-02
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 bllqbz 的回复:]

引用 12 楼 z175269158 的回复:

引用 9 楼 ndy_w 的回复:

选中文本然后复制
--------------
你要做这个操作当然是在IE里,IWebBrowser是IE里边核心的接口,通过这个接口可以执行IE的全选复制等命令,然后你就可以去剪切板里取了。


不过这个需要安装什么东西吗?或者头文件需要什么?

额 你还是查一下MSDN吧。。。。……
[/Quote]

嗯嗯,我还是初学者,想写什么功能的时候都会自己查,只不过现在对MSDN还用不习惯
Zimmerk 2011-08-02
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 z175269158 的回复:]

.示例﹕
(a)调用IE的”另存为”功能的示例﹕
<object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object>
<A href=".:WebBrowser.ExecWB(4,1);">Save-存储</A>

这个能不能解释一下各个部分的含义……
[/Quote]
这是object。好像是在HTML上的控件,,,。
火龙 2011-08-02
  • 打赏
  • 举报
回复
.示例﹕
(a)调用IE的”另存为”功能的示例﹕
<object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object>
<A href=".:WebBrowser.ExecWB(4,1);">Save-存储</A>

这个能不能解释一下各个部分的含义,谢谢
Zimmerk 2011-08-02
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 z175269158 的回复:]

引用 9 楼 ndy_w 的回复:

选中文本然后复制
--------------
你要做这个操作当然是在IE里,IWebBrowser是IE里边核心的接口,通过这个接口可以执行IE的全选复制等命令,然后你就可以去剪切板里取了。


不过这个需要安装什么东西吗?或者头文件需要什么?
[/Quote]
额 你还是查一下MSDN吧。。。。。如果你这样我估计很难做得好
http://msdn.microsoft.com/en-us/library/aa752127%28VS.85%29.aspx
ndy_w 2011-08-02
  • 打赏
  • 举报
回复
正确!不同浏览器的编程接口不同。
不用浏览器,用wininet也可以。但超链接需要自己处理下。
火龙 2011-08-02
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 ndy_w 的回复:]

选中文本然后复制
--------------
你要做这个操作当然是在IE里,IWebBrowser是IE里边核心的接口,通过这个接口可以执行IE的全选复制等命令,然后你就可以去剪切板里取了。
[/Quote]

不过这个需要安装什么东西吗?或者头文件需要什么?
火龙 2011-08-02
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 ndy_w 的回复:]

选中文本然后复制
--------------
你要做这个操作当然是在IE里,IWebBrowser是IE里边核心的接口,通过这个接口可以执行IE的全选复制等命令,然后你就可以去剪切板里取了。
[/Quote]
也就是说这个是一个控件之类的东西啦?嗯嗯,这个更方便一些,不过可惜不支持其他的浏览器
火龙 2011-08-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 bllqbz 的回复:]

引用 5 楼 z175269158 的回复:

引用 4 楼 bllqbz 的回复:

比如一个网页源码是

HTML code

<html>
<body>
<div id="content">
Hello,World!
</div>
</body>
</html>


你找到<div id="content">这块,然后一直到第一个</div>前,保存起来就……
[/Quote]

谢谢啦,我试试看行不行
ndy_w 2011-08-02
  • 打赏
  • 举报
回复
选中文本然后复制
--------------
你要做这个操作当然是在IE里,IWebBrowser是IE里边核心的接口,通过这个接口可以执行IE的全选复制等命令,然后你就可以去剪切板里取了。
Zimmerk 2011-08-02
  • 打赏
  • 举报
回复
用DOM的话也可以,不过我记得一个元素没有name还是id属性的话,很麻烦的,可能会获取到其它不相关的元素
Zimmerk 2011-08-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 z175269158 的回复:]

引用 4 楼 bllqbz 的回复:

比如一个网页源码是

HTML code

<html>
<body>
<div id="content">
Hello,World!
</div>
</body>
</html>


你找到<div id="content">这块,然后一直到第一个</div>前,保存起来就可以啦,可以用正则完成


嗯嗯不错的建议,这……
[/Quote]
把全部代码保存起来啊,显示的时候用HTML显示就可以了
<html>
<body>
<div id="content">
Report
<table>
<tr>
<td>ID</td>
<td>Name</td>
</tr>
<tr>
<td>0</td>
<td>Huang</td>
</tr>
</table>
</div>
</body>
</html>

一样的,都是在<div>之间(假设<div id="content"></div>之间的都是你要的),就把里面的内容都保存起来
Report
<table>
<tr>
<td>ID</td>
<td>Name</td>
</tr>
<tr>
<td>0</td>
<td>Huang</td>
</tr>
</table>

可以保存到数据库中或是怎么样都可以,要显示的时候就读出来用CHtmlView类显示就可以了,当作一个网页显示
火龙 2011-08-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ndy_w 的回复:]

不是API,是IWebBrowser2::ExecWB
先OLECMDID_SELECTALL
再OLECMDID_COPY
要翻页,需要了解网页内容,遍历DOM
[/Quote]

这个不懂,网上的介绍是英文的,这个是什么东西?能不能麻烦解释一下
火龙 2011-08-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bllqbz 的回复:]

比如一个网页源码是

HTML code

<html>
<body>
<div id="content">
Hello,World!
</div>
</body>
</html>


你找到<div id="content">这块,然后一直到第一个</div>前,保存起来就可以啦,可以用正则完成
[/Quote]

嗯嗯不错的建议,这个对于图片表格有效吗?
Zimmerk 2011-08-02
  • 打赏
  • 举报
回复
比如一个网页源码是


<html>
<body>
<div id="content">
Hello,World!
</div>
</body>
</html>

你找到<div id="content">这块,然后一直到第一个</div>前,保存起来就可以啦,可以用正则完成
火龙 2011-08-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bllqbz 的回复:]

要自己分析源码找到下一页就可以了。。。。
基本上都是找到内容整块保存起来叫可以了
[/Quote]

主要是我不知道哪个API函数能够实现网页里面指定内容的选中和复制粘贴的操作。
ndy_w 2011-08-02
  • 打赏
  • 举报
回复
不是API,是IWebBrowser2::ExecWB
先OLECMDID_SELECTALL
再OLECMDID_COPY
要翻页,需要了解网页内容,遍历DOM
Zimmerk 2011-08-02
  • 打赏
  • 举报
回复
要自己分析源码找到下一页就可以了。。。。
基本上都是找到内容整块保存起来叫可以了

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧