kevinch 发表于 2011-3-17 15:57:18

请问有办法复制网页某区域的内容吗?

本帖最后由 kevinch 于 2011-3-17 15:58 编辑

想用程序复制网页某一区域的内容,比如某一关键字或某一链接的位置到另一关键字或链接之间的内容,请问有可靠的方法吗?请大侠们指点。{:face (396):}
或者可以有办法复制网页中的表格等内容吗?

kevinch 发表于 2011-3-18 08:38:57

本帖最后由 kevinch 于 2011-3-18 08:41 编辑

清早起来顶一下帖,希望大家可以帮忙出出主意,关键是复制网页中的表格或图片存在问题。用手工复制就没问题,所以想是不是有办法模仿该操作。

kevinch 发表于 2011-3-18 21:06:17

又研究了大半天,想到一个折中的方法,将内容源代码提取出来放到新的网页里拼合后,一起复制,不知还有没有更好的方法。
大家帮忙啊{:face (197):}

lynfr8 发表于 2011-3-19 02:41:53

我正在想着写一个iphone软件收集管理工具
其中的思路就是提取网页部分图文保存为mht
明天写一个试试

kevinch 发表于 2011-3-19 07:06:39

我正在想着写一个iphone软件收集管理工具
其中的思路就是提取网页部分图文保存为mht
明天写一个试试
lynfr8 发表于 2011-3-19 02:41 http://www.autoitx.com/images/common/back.gif
谢谢,期待中......{:face (197):}

chenlu_ling 发表于 2011-3-19 07:49:00

关注 {:face (303):}

kevinch 发表于 2011-3-19 18:35:59

今天测试了一小段,应该是可行的,就是通用性太差,继续研究。{:face (197):}

lynfr8 发表于 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("", ""), "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

lynfr8 发表于 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 //第1个img标签
document.images //第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 //第1个/formform标签
document.forms //第i-1个/formform标签
document.forms.length //第i-1个/formform中的控件数
document.forms.elements//第i-1个/formform中第j-1个控件

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

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

document.forms.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]
查看完整版本: 请问有办法复制网页某区域的内容吗?