标题: 【求助】网页复制到记事本有乱码
[打印本页]
作者: plp626
时间: 2010-4-25 22:50
标题: 【求助】网页复制到记事本有乱码
测试网页:
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 ]
作者: exzzz
时间: 2010-4-25 23:18
你在那个网页上点右键,查看源文件,翻两页,你就知道是什么原因了。
可以清理掉的啦。
作者: Pierre
时间: 2010-4-26 00:11
好恶心的论坛。。。
作者: Pierre
时间: 2010-4-26 00:12
这是一些论坛防抄加的乱码
作者: dato
时间: 2010-4-26 02:29
用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 ]
作者: asnahu
时间: 2010-4-26 09:32
wget http://bbs.xunshang.net/simple/index.php?t53815.html -O - | htox32c /IP | sed "s/ .*//g" | sed "/^\+/d"
其中表示非中文字符。
作者: plp626
时间: 2010-4-26 13:13
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 ]
作者: plp626
时间: 2010-4-26 13:19
Originally posted by dato at 2010-4-26 02:29 AM:
用http://www.topfisher.com/实现的.
topfisher在用于网页数据采集,数据分析是很强大的,虽然不支持图片验证,用户登录验证,但是对付常规页面还是小菜一碟.这 ...
是很强大,现在没分了,下次加上
作者: Hanyeguxing
时间: 2010-4-26 14:09
在Microsoft Office FrontPage中,查找——HTML标记:设置查找标记为span,然后:
1,可以直接“替换操作”为“仅替换目录”,直接干掉<span style="display:none">**********</span>中的所有乱码。。。
2,可以直接“替换操作”为“替换标记和目录”,连span标记都干掉,世界就清净了。。。
基于以上目的,也可以使用sed来完成对<span style="display:none">**********</span>的跨行匹配等等
作者: fsfss
时间: 2010-4-26 23:32
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();