中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助:如何将网页源代码用批处理转成文本格式
作者:
标题: 求助:如何将网页源代码用批处理转成文本格式 上一主题 | 下一主题
zb1007zb
初级用户




积分 88
发帖 39
注册 2008-8-16
状态 离线
『楼 主』:  求助:如何将网页源代码用批处理转成文本格式

我想将一个网站上面的源代码 和 网页资料 转成文本格式

请教大侠们 如何实现

源代码就是网页上体现不出来的 (举例,像私服发布页这样的)


网页 就是网页的内容转成文本(举例,像文章这样的)


谢谢·~


===================
回2楼

我要的是通过网址下代码 而不是网页的文件

[ Last edited by zb1007zb on 2008-10-3 at 17:44 ]



/? 永远是你最好的老师
2008-10-3 16:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
radem
高级用户

CMD感染者


积分 691
发帖 383
注册 2008-5-23
状态 离线
『第 2 楼』:  

ren 网页文件 a.txt



2008-10-3 17:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by zb1007zb at 2008-10-3 16:46:
我想将一个网站上面的源代码 和 网页资料 转成文本格式

请教大侠们 如何实现

源代码就是网页上体现不出来的 (举例,像私服发布页这样的)

我要的是通过网址下代码 而不是网页的文件

通过网址下载代码?

wget、curl、vbs 都可以试试。

2008-10-3 17:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Evangel
初级用户





积分 145
发帖 95
注册 2008-4-12
状态 离线
『第 4 楼』:  

for /f %a in ('dir /a-d /b *.htm') do ren %a %~na.txt

2008-10-3 18:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zb1007zb
初级用户




积分 88
发帖 39
注册 2008-8-16
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by lxmxn at 2008-10-3 05:47 PM:

通过网址下载代码?

wget、curl、vbs 都可以试试。

那具体语法能否说下呢?

谢谢



/? 永远是你最好的老师
2008-10-3 18:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zb1007zb
初级用户




积分 88
发帖 39
注册 2008-8-16
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by Evangel at 2008-10-3 06:09 PM:
for /f %a in ('dir /a-d /b *.htm') do ren %a %~na.txt

这位同学的批处理点了好像没反应哦



/? 永远是你最好的老师
2008-10-3 18:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hackate
中级用户





积分 228
发帖 125
注册 2008-8-25
状态 离线
『第 7 楼』:  

@echo off
<"%~f0" more +6 >tmp.vbs
cscript //NoLogo /e:vbscript tmp.vbs
pause
del tmp.vbs
goto:eof
Set oDOM = WScript.GetObject("http://www.ip138.com/ip2city.asp")
do until oDOM.readyState = "complete"
WScript.sleep 200
loop
WScript.echo oDOM.documentElement.outerText

你可以参考这个代码
这个代码就是获取指定的网页的文本

2008-10-3 18:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zb1007zb
初级用户




积分 88
发帖 39
注册 2008-8-16
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by hackate at 2008-10-3 06:53 PM:
@echo off
<"%~f0" more +6 >tmp.vbs
cscript //NoLogo /e:vbscript tmp.vbs
pause
del tmp.vbs
goto:eof
Set oDOM = WScript.GetObject("http://www.ip138.com/ip2city.asp")
...

7楼兄弟的这个可以 很强大

但是我对VBS不怎么懂

不晓得怎么转成文本



/? 永远是你最好的老师
2008-10-3 18:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hackate
中级用户





积分 228
发帖 125
注册 2008-8-25
状态 离线
『第 9 楼』:  

@echo off
<"%~f0" more +7 >tmp.vbs
(cscript //NoLogo /e:vbscript tmp.vbs
echo.)>>tmp.txt
pause
del tmp.vbs
goto:eof
Set oDOM = WScript.GetObject("http://www.ip138.com/ip2city.asp")
do until oDOM.readyState = "complete"
WScript.sleep 200
loop
WScript.echo oDOM.documentElement.outerText

把代码改成这样.就能把输出内容直接保存到tmp.txt文本文件中啦

2008-10-3 19:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zb1007zb
初级用户




积分 88
发帖 39
注册 2008-8-16
状态 离线
『第 10 楼』:  



  Quote:
Originally posted by hackate at 2008-10-3 07:16 PM:
@echo off
<"%~f0" more +7 >tmp.vbs
(cscript //NoLogo /e:vbscript tmp.vbs
echo.)>>tmp.txt
pause
del tmp.vbs
goto:eof
Set oDOM = WScript.GetObject("http://www.ip138. ...

恩 很感谢楼上的仁兄
代码都没错了

可是我希望得到的 是网页的源代码

比如        <td align="left">08年/9月/03日/22点/00分</td>
                <td align="left">电信</td>

这样的

因为我需要的一些链接只存在于代码里
光光网页上无法显示


再次谢谢各位了~~~~~~~~~



/? 永远是你最好的老师
2008-10-3 22:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
shqf
初级用户





积分 35
发帖 18
注册 2008-8-10
状态 离线
『第 11 楼』:  

curl -o page.html http://www.yahoo.com

2008-10-4 11:07
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dato
高级用户




积分 916
发帖 377
注册 2004-3-8
状态 离线
『第 12 楼』:  

http://www.topfisher.com/

一个有自编函数库的网页数据采集软件很强大,像你这种需求太简单了,自己参考论坛的例子学习吧,批实现的方法我在论坛也见过,不过说实在批这种东西有些写法实在是我的脑袋无法理解的,还是这种使用函数库的脚本比较简单.



http://dato.ys168.com
google search bot
http://dato.minidns.net/
2008-10-4 11:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hackate
中级用户





积分 228
发帖 125
注册 2008-8-25
状态 离线
『第 13 楼』:  

晕死,既然是这样你没说清楚,你应该说要获取网页的原代码,HTML. 而不是说获取文本信息,我倒..

@echo off
<"%~f0" more +7 >tmp.vbs
(cscript //NoLogo /e:vbscript tmp.vbs
echo.)>>tmp.txt
pause
del tmp.vbs
goto:eof
Set oDOM = WScript.GetObject("http://www.ip138.com/ip2city.asp")
do until oDOM.readyState = "complete"
WScript.sleep 200
loop
WScript.echo oDOM.documentElement.outerHtml

这样就可以了..

2008-10-4 12:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dato
高级用户




积分 916
发帖 377
注册 2004-3-8
状态 离线
『第 14 楼』:  

楼主不只获得源代码这么简单的.

其实像这种应用多半是在一个主索引页面采集深层URL链接,再根据URL跳转进入具体页面采集页面上的相应数据,这种用批就算能实现相应的代码也太具有针对性而不具备通用性,建议使用topfisher吧,以前只是把它当作一个数据采集软件进行数据分析,用久了发现自己平时的很多思维都改变了.一个可以真正在网络庞大的数据进行筛选分析数据的好东东

你的应用可以参考,7楼的采集实例
http://www.topfisher.com/phpbbs/read.php?tid=6919
具体用directread()函数就可以了

directRead(p1(字符串常量), p2(字符串常量), p3(字符串变量)): 从网页中直接读取数据
说明:
从网页中找到p1字符串(左字符串),和p2字符串(右字符串),把p1和p2之间的字符串赋值给p3.

参数:
p1:左字符串
p1:右字符串
p1:字符串变量
注意:
默认的情况下,directRead是从网页的最开始处搜索的。如果之前调用了setOffset,会从setOffset后的位置开始搜索.
例子:
//读取”<title>”和”</title>”之间的字符串给_$str1
directRead(“<title>”,”</title>”,_$str1)



http://dato.ys168.com
google search bot
http://dato.minidns.net/
2008-10-4 12:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: