中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 【求助】网页复制到记事本有乱码
作者:
标题: 【求助】网页复制到记事本有乱码 上一主题 | 下一主题
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『楼 主』:  【求助】网页复制到记事本有乱码 使用 LLM 解释/回答一下

测试网页:
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学习
2010-4-25 22:50
查看资料  发短消息  网志   编辑帖子  回复  引用回复
exzzz
初级用户

游手好闲 + 无所事事 ..



积分 194
发帖 167
注册 2007-4-30
状态 离线
『第 2 楼』:   使用 LLM 解释/回答一下

你在那个网页上点右键,查看源文件,翻两页,你就知道是什么原因了。

可以清理掉的啦。




2010-4-25 23:18
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
Pierre
初级用户





积分 30
发帖 19
注册 2009-4-4
状态 离线
『第 3 楼』:   使用 LLM 解释/回答一下

好恶心的论坛。。。


2010-4-26 00:11
查看资料  发短消息  网志   编辑帖子  回复  引用回复
Pierre
初级用户





积分 30
发帖 19
注册 2009-4-4
状态 离线
『第 4 楼』:   使用 LLM 解释/回答一下

这是一些论坛防抄加的乱码


2010-4-26 00:12
查看资料  发短消息  网志   编辑帖子  回复  引用回复
dato
高级用户




积分 916
发帖 377
注册 2004-3-8
状态 离线
『第 5 楼』:   使用 LLM 解释/回答一下

用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 ]




http://dato.ys168.com
google search bot
http://dato.minidns.net/
2010-4-26 02:29
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
asnahu
初级用户





积分 99
发帖 53
注册 2006-8-18
状态 离线
『第 6 楼』:   使用 LLM 解释/回答一下



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



其中表示非中文字符。


   此帖被 +15 点积分         点击查看详情   
评分人:【 plp626 分数: +15  时间:2010-4-26 13:12


2010-4-26 09:32
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 7 楼』:   使用 LLM 解释/回答一下

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学习
2010-4-26 13:13
查看资料  发短消息  网志   编辑帖子  回复  引用回复
plp626
银牌会员

钻石会员


积分 2278
发帖 1020
注册 2007-11-19
状态 离线
『第 8 楼』:   使用 LLM 解释/回答一下

Originally posted by dato at 2010-4-26 02:29 AM:
http://www.topfisher.com/实现的.
topfisher在用于网页数据采集,数据分析是很强大的,虽然不支持图片验证,用户登录验证,但是对付常规页面还是小菜一碟.这 ...


是很强大,现在没分了,下次加上




山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
2010-4-26 13:19
查看资料  发短消息  网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 9 楼』:   使用 LLM 解释/回答一下

在Microsoft Office FrontPage中,查找——HTML标记:设置查找标记为span,然后:
1,可以直接“替换操作”为“仅替换目录”,直接干掉<span style="display:none">**********</span>中的所有乱码。。。
2,可以直接“替换操作”为“替换标记和目录”,连span标记都干掉,世界就清净了。。。

基于以上目的,也可以使用sed来完成对<span style="display:none">**********</span>的跨行匹配等等




批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-4-26 14:09
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
fsfss
初级用户





积分 22
发帖 20
注册 2009-7-6
状态 离线
『第 10 楼』:   使用 LLM 解释/回答一下


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();


2010-4-26 23:32
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

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


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



论坛跳转: