找回密码
 加入
搜索
查看: 5307|回复: 8

[IE类操作] 请问有办法复制网页某区域的内容吗?

  [复制链接]
发表于 2011-3-17 15:57:18 | 显示全部楼层 |阅读模式
本帖最后由 kevinch 于 2011-3-17 15:58 编辑

想用程序复制网页某一区域的内容,比如某一关键字或某一链接的位置到另一关键字或链接之间的内容,请问有可靠的方法吗?请大侠们指点。
或者可以有办法复制网页中的表格等内容吗?
 楼主| 发表于 2011-3-18 08:38:57 | 显示全部楼层
本帖最后由 kevinch 于 2011-3-18 08:41 编辑

清早起来顶一下帖,希望大家可以帮忙出出主意,关键是复制网页中的表格或图片存在问题。用手工复制就没问题,所以想是不是有办法模仿该操作。
 楼主| 发表于 2011-3-18 21:06:17 | 显示全部楼层
又研究了大半天,想到一个折中的方法,将内容源代码提取出来放到新的网页里拼合后,一起复制,不知还有没有更好的方法。
大家帮忙啊
发表于 2011-3-19 02:41:53 | 显示全部楼层
我正在想着写一个iphone软件收集管理工具
其中的思路就是提取网页部分图文保存为mht
明天写一个试试
 楼主| 发表于 2011-3-19 07:06:39 | 显示全部楼层
我正在想着写一个iphone软件收集管理工具
其中的思路就是提取网页部分图文保存为mht
明天写一个试试
lynfr8 发表于 2011-3-19 02:41

谢谢,期待中......
发表于 2011-3-19 07:49:00 | 显示全部楼层
关注
 楼主| 发表于 2011-3-19 18:35:59 | 显示全部楼层
今天测试了一小段,应该是可行的,就是通用性太差,继续研究。
发表于 2011-3-20 18:55:04 | 显示全部楼层
#include <IE.au3>
#include <file.au3>
;只支持IE浏览器 By lynfr8
HotKeySet("{F10}", "GetHtml")
While 1
    Sleep(100)
WEnd
Func GetHtml()
$oIE = _IEAttach (WinGetHandle("[ACTIVE]", ""), "HWND")
$html = $oIE.document.selection.createRange().htmlText 
If $html <> '' Then _FileWriteLog(@ScriptDir & ""&_IEPropertyGet($oIE, "locationname")& ".html",$html)
TrayTip("已保存",_IEPropertyGet($oIE, "locationname"),2)
EndFunc


以上代码仅仅是保存网页自选区域的html文件

如果想离线也可浏览图片
可用正则提取$oIE.document.selection.createRange().htmlText的图片链接并下载到以_IEPropertyGet($oIE, "locationname")命名的文件夹
同时将@ScriptDir & "\"&_IEPropertyGet($oIE, "locationname")& ".html"文件的图片链接路径改为本地相对路径
精力有限我就不写了
也可以借鉴此文章:保存本地html为mht文件(官网),不过我测试了这段官网代码出错,楼主有兴趣可研究下。
参考资料:

关于document.selection对象的介绍
document对象
Document.selection

评分

参与人数 1金钱 +20 贡献 +5 收起 理由
kevinch + 20 + 5 先顶,再慢慢吸收,谢谢

查看全部评分

发表于 2011-3-20 18:56:35 | 显示全部楼层
document对象

一.对象属性
document.title//设置文档标题等价于HTML的title标签
document.bgColor //设置页面背景色
document.fgColor //设置前景色(文本颜色)
document.linkColor //未点击过的链接颜色
document.alinkColor //激活链接(焦点在此链接上)的颜色
document.vlinkColor //已点击过的链接颜色
document.URL //设置URL属性从而在同一窗口打开另一网页
document.fileCreatedDate //文件建立日期,只读属性
document.fileModifiedDate //文件修改日期,只读属性
document.fileSize //文件大小,只读属性
document.cookie //设置和读出cookie
document.charset //设置字符集 简体中文:gb2312
二.常用对象方法
document.write() //动态向页面写入内容
document.createElement(Tag) //创建一个html标签对象
document.getElementById(ID) //获得指定ID值的对象
document.getElementsByName(Name) //获得指定Name值的对象
document.body.appendChild(oTag)
document.body//指定文档主体的开始和结束等价于body>/body>
document.body.bgColor //设置或获取对象后面的背景颜色
document.body.link //未点击过的链接颜色
document.body.alink //激活链接(焦点在此链接上)的颜色
document.body.vlink //已点击过的链接颜色
document.body.text //文本色
document.body.innerText //设置body>…/body>之间的文本
document.body.innerHTML//设置body>…/body>之间的HTML代码
document.body.topMargin //页面上边距
document.body.leftMargin //页面左边距
document.body.rightMargin //页面右边距
document.body.bottomMargin //页面下边距
document.body.background //背景图片

document.body.appendChild(oTag)//动态生成一个HTML对象

三.常用对象事件
document.body.onclick=”func()” //鼠标指针单击对象是触发
document.body.onmouseover=”func()” //鼠标指针移到对象时触发
document.body.onmouseout=”func()” //鼠标指针移出对象时触发
location-位置子对象

document.location.hash // #号后的部分
document.location.host // 域名+端口号
document.location.hostname // 域名
document.location.href // 完整URL
document.location.pathname // 目录部分
document.location.port // 端口号
document.location.protocol // 网络协议(http:)
document.location.search // ?号后的部分

documeny.location.reload() //刷新网页
document.location.reload(URL) //打开新的网页
document.location.assign(URL) //打开新的网页
document.location.replace(URL) //打开新的网页
selection-选区子对象
document.selection

images集合(页面中的图象)

a)通过集合引用
document.images//对应页面上的img标签
document.images.length //对应页面上img标签的个数
document.images[0] //第1个img标签
document.images[i] //第i-1个img标签

b)通过nane属性直接引用
img name=”oImage”
document.images.oImage //document.images.name属性

c)引用图片的src属性
document.images.oImage.src//document.images.name属性.src

d)创建一个图象
var oImage
oImage = new Image()
document.images.oImage.src=”1.jpg”
同时在页面上建立一个img /标签与之对应就可以显示

forms集合(页面中的表单)

a)通过集合引用
document.forms //对应页面上的form标签
document.forms.length //对应页面上/formform标签的个数
document.forms[0] //第1个/formform标签
document.forms[i] //第i-1个/formform标签
document.forms[i].length //第i-1个/formform中的控件数
document.forms[i].elements[j]//第i-1个/formform中第j-1个控件

b)通过标签name属性直接引用
/formformname=”Myform”>input name=”myctrl”/>/form
document.Myform.myctrl //document.表单名.控件名

c)访问表单的属性
document.forms[i].name //对应form name>属性
document.forms[i].action //对应/formform action>属性
document.forms[i].encoding //对应/formform enctype>属性
document.forms[i].target //对应/formform target>属性

document.forms[i].appendChild(oTag)//动态插入一个控件
document.all.oDiv //引用图层oDiv
document.all.oDiv.style.display=”" //图层设置为可视
document.all.oDiv.style.display=”none” //图层设置为隐藏
document.getElementId(”oDiv”) //通过getElementId引用对象
document.getElementId(”oDiv”).style=”"
document.getElementId(”oDiv”).display=”none”

图层对象的4个属性
document.getElementById(”ID”).innerText//动态输出文本
document.getElementById(”ID”).innerHTML //动态输出HTML
document.getElementById(”ID”).outerText //同innerText
document.getElementById(”ID”).outerHTML //同innerHTML

评分

参与人数 1金钱 +20 贡献 +5 收起 理由
kevinch + 20 + 5 谢谢提供

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-9 02:09 , Processed in 0.086551 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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