中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 08:11
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 【求助】网页复制到记事本有乱码 查看 1,053 回复 9
楼 主 【求助】网页复制到记事本有乱码 发表于 2010-04-25 22:50 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
测试网页:
http://bbs.xunshang.net/simple/index.php?t53815.html
为了大家方便测试,请大家启动cmd,然后在桌面路径下复制如下代码:

wget http://bbs.xunshang.net/simple/index.php?t53815.html -O test.htm
htox32c /ip test.htm test.txt
write test.txt


我本人对html标签不熟悉,所以我转换为txt

桌面的test.txt文本每行后面有乱码(请大家用写字板write打开它),大家如何把这些乱码过滤掉?

三方工具:
wget htox32c perl sed grep 在我网盘里都有(我签名的那个绿色就是)

[ Last edited by plp626 on 2010-4-25 at 23:01 ]
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2 发表于 2010-04-25 23:18 ·  中国 广东 深圳 电信
初级用户
★★
游手好闲 + 无所事事 ..
积分 194
发帖 167
注册 2007-04-30 09:43
19年会员
UID 87022
性别 男
状态 离线
你在那个网页上点右键,查看源文件,翻两页,你就知道是什么原因了。

可以清理掉的啦。
3 发表于 2010-04-26 00:11 ·  中国 上海 电信
初级用户
积分 30
发帖 19
注册 2009-04-04 03:50
17年会员
UID 142065
性别 男
状态 离线
好恶心的论坛。。。
4 发表于 2010-04-26 00:12 ·  中国 上海 电信
初级用户
积分 30
发帖 19
注册 2009-04-04 03:50
17年会员
UID 142065
性别 男
状态 离线
这是一些论坛防抄加的乱码
5 发表于 2010-04-26 02:29 ·  中国 上海 电信
高级用户
★★★
积分 916
发帖 377
注册 2004-03-08 00:00
22年会员
UID 19523
性别 男
状态 离线
用http://www.topfisher.com/实现的.
topfisher在用于网页数据采集,数据分析是很强大的,虽然不支持图片验证,用户登录验证,但是对付常规页面还是小菜一碟.这个软件是目前所用过的所有采集软件里基于代码最灵活实现的. 其它更强大的也就那个织梦了,可以实时在线采集


//TopFisher v 2.10 脚本代码
//配置部分,您可以在这里直接修改配置参数
InitLink("http://bbs.xunshang.net/simple/index.php?t53815.html")
DbConnStr("Provider=Microsoft.JET.OLEDB.4.0;Data source=data.mdb;Jet OLEDB:Engine Type=5;")
dbTable("myTable",5)

//-----------------------------------------------------------

//代码部分
function main
webmem(DELETE,"<span style="display:none">","<br/>")
webmem(REPLACE,"<br/>","")
//这是TPF脚本的主函数,请将代码写在这里
_$str1=html.head.body.table.tr.td.table.tr.td.text
dellabel(_$str1)
printf(_$str1)

end




2010/04/26 02:06:39: main
2010/04/26 02:06:39: Creating .MDB file...
2010/04/26 02:06:39: Create .MDB file ok.
2010/04/26 02:06:39: open db ok.
2010/04/26 02:06:39: http://bbs.xunshang.net/simple/index.php?t53815.html
2010/04/26 02:06:39: write temp web file...
2010/04/26 02:06:39: webfile connect ok.
2010/04/26 02:06:39: Reading web file...
2010/04/26 02:06:39: Web file length is: 25798 bytes.
2010/04/26 02:06:39: building webBuffer...
2010/04/26 02:06:39: _$str1 =


2010/04/26 02:06:39: database closed.
2010/04/26 02:06:39: all .tpf file finished.



webMem(p1(操作指令),p2(字符串参数1),? p3(字符串参数2)): 直接对web页面源码进行过滤
说明:
直接对下载下来的web页面源码进行字符串过滤,如:替换某些字符串,或删除某些字符串等。这个函数一般情况下不需要使用。只有在某些网页源码比较杂乱,直接采集比较麻烦,需要先过滤一些无用的元素的时候,才有使用webMem函数的必要。

[ Last edited by dato on 2010-4-26 at 02:30 ]
6 发表于 2010-04-26 09:32 ·  柬埔寨
初级用户
★★
积分 99
发帖 53
注册 2006-08-18 18:44
19年会员
UID 60809
状态 离线


wget http://bbs.xunshang.net/simple/index.php?t53815.html -O - | htox32c /IP | sed "s/ .*//g" | sed "/^\+/d"



其中表示非中文字符。
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
plp626 +15 2010-04-26 13:12
7 发表于 2010-04-26 13:13 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
Originally posted by asnahu at 2010-4-26 09:32 AM:


wget http://bbs.xunshang.net/simple/index.php?t53815.html -O - | htox32c /IP | sed "s/ .*//g" | sed "/^\+/d"



其中表示非中文字符。


喜欢这优美的代码
=========================

但是, 过滤了网页中的乱码字符也过滤掉了文章中有用的数据比如阿拉伯数字还有某些英文单词

[ Last edited by plp626 on 2010-4-26 at 13:16 ]
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
8 发表于 2010-04-26 13:19 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
Originally posted by dato at 2010-4-26 02:29 AM:
http://www.topfisher.com/实现的.
topfisher在用于网页数据采集,数据分析是很强大的,虽然不支持图片验证,用户登录验证,但是对付常规页面还是小菜一碟.这 ...


是很强大,现在没分了,下次加上
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
9 发表于 2010-04-26 14:09 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
在Microsoft Office FrontPage中,查找——HTML标记:设置查找标记为span,然后:
1,可以直接“替换操作”为“仅替换目录”,直接干掉<span style="display:none">**********</span>中的所有乱码。。。
2,可以直接“替换操作”为“替换标记和目录”,连span标记都干掉,世界就清净了。。。

基于以上目的,也可以使用sed来完成对<span style="display:none">**********</span>的跨行匹配等等
10 发表于 2010-04-26 23:32 ·  中国 湖北 黄石 电信
初级用户
积分 22
发帖 20
注册 2009-07-06 23:34
17年会员
UID 148862
性别 男
状态 离线

ie=WScript.createobject("internetexplorer.application");
fso=WScript.createobject("scripting.filesystemobject")
ie.navigate("http://bbs.xunshang.net/simple/index.php?t53815.html");
do{
WScript.sleep(10);
}while(ie.readyState!=4&&ie.Busy==true);
len=ie.document.getElementsByTagName("span").length;
for(i=0;i<len;i++){
if(ie.document.getElementsByTagName("span").style.display=="none"){
ie.document.getElementsByTagName("span").innerText="";
}
}
text=ie.document.getElementsByTagName("table").innerText;
text=text.replace(/()(?:\s*\r\n\s*)+()/g,"$1$2");
text=text.replace(/(?:\s*\r\n\s*)+/g,"\r\n ");
fso.CreateTextFile("html_text.txt",true,true).write(text);
WScript.sleep(500);
WScript.createobject("wscript.shell").run("notepad html_text.txt");
ie.Quit();
论坛跳转: