当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 15 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 用perl语言get下来网页汉字是乱码
帖子发表于 : 2017-05-26 23:14 

注册: 2017-05-26 23:07
帖子: 10
系统: ubuntu
送出感谢: 2
接收感谢: 0 次
代码:
use strict;
use LWP::Simple;
use HTTP::Cookies;
use Encode;

my $browser = LWP::UserAgent->new;
#$browser->agent("Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0");
my $res;
my $cookie_jar = HTTP::Cookies->new(
    file=>'lwp_cookies_taobao.txt',
    autosave=>1,
    ignore_discard=>1);
$browser->cookie_jar($cookie_jar);
my $login_url ;
$login_url = 'http://quote.eastmoney.com/sh600031.html?StockCode=600031';
$res = $browser->get($login_url);
my $res1 = encode("GBK",decode("gb2312",$res->content));
my $res2 = encode("GBK",decode("utf-8",$res->content));
my $res21 = encode("gb2312",decode("utf-8",$res->content));
my $res3 = decode("utf-8",$res->content);
my $res4 = decode("GBK",$res->content);
my $res5 = decode("gb2312",$res->content);

本人用以上代码获取网页内容,为什么获取到的汉字都有问题,怀疑是汉字编码问题,但是用decode和encode都试遍了还是不行,这个实例网页好像是utf-8编码的,为什么不能正确获取汉字内容呢?大神解答。感激不尽


_________________
Stay hungry,Stay foolish


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 用perl语言get下来网页汉字是乱码
帖子发表于 : 2017-05-27 9:14 

注册: 2017-05-26 23:07
帖子: 10
系统: ubuntu
送出感谢: 2
接收感谢: 0 次
:Effort 不要沉下去


_________________
Stay hungry,Stay foolish


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 用perl语言get下来网页汉字是乱码
帖子发表于 : 2017-05-27 14:30 

注册: 2007-01-14 16:23
帖子: 4256
送出感谢: 0 次
接收感谢: 107
代码:
use strict;
use LWP;
my $ua=LWP::UserAgent->new;
my $res=$ua->get("http://www.taobao.com");
print $res->content;


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 用perl语言get下来网页汉字是乱码
帖子发表于 : 2017-05-28 8:34 

注册: 2017-05-26 23:07
帖子: 10
系统: ubuntu
送出感谢: 2
接收感谢: 0 次
淘宝网也许可以 但是有的网站就是不行啊 你试试我的那个事例网站 看能不能行 我现在电脑不在身边。


_________________
Stay hungry,Stay foolish


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 用perl语言get下来网页汉字是乱码
帖子发表于 : 2017-05-28 17:18 

注册: 2010-05-01 21:23
帖子: 1955
送出感谢: 4
接收感谢: 21
先保存为html文件,然后Writer打开,再另存为txt文件。文字就保存下来。如果直接使用文本浏览器打开html,还是乱码的。提取当然是乱码。

<meta http-equiv="content-type" content="text/html; charset=gbk">


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 用perl语言get下来网页汉字是乱码
帖子发表于 : 2017-05-28 17:42 

注册: 2010-05-01 21:23
帖子: 1955
送出感谢: 4
接收感谢: 21
试过了,用这命令能转化成正常文件

enconv -L zh_CN -x UTF-8



_________________
评价: 3.7% sstal
 
页首
 用户资料  
 
7 楼 
 文章标题 : Re: 用perl语言get下来网页汉字是乱码
帖子发表于 : 2017-05-31 20:33 

注册: 2017-05-26 23:07
帖子: 10
系统: ubuntu
送出感谢: 2
接收感谢: 0 次
网页源码里面有这么一句话,<meta http-equiv="content-type" content="text/html; charset=gb2312"/>,为什么我用这个语句不行呢:
my $res5 = decode("gb2312",$res->content);

大神指教,不要沉,不要沉。 :Aadterboom :Aadterboom


_________________
Stay hungry,Stay foolish


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 用perl语言get下来网页汉字是乱码
帖子发表于 : 2017-06-01 9:35 
头像

注册: 2007-09-29 3:09
帖子: 5777
送出感谢: 0 次
接收感谢: 5
试试看
代码:
encode("utf8", decode("gbk", $res->content));


_________________
HUNT Unfortunately No Talent...



_________________
评价: 3.7% sstal
 
页首
 用户资料  
 
9 楼 
 文章标题 : Re: 用perl语言get下来网页汉字是乱码
帖子发表于 : 2017-06-01 19:38 

注册: 2017-05-26 23:07
帖子: 10
系统: ubuntu
送出感谢: 2
接收感谢: 0 次
HuntXu 写道:
试试看
代码:
encode("utf8", decode("gbk", $res->content));
感谢hunt,但是我还是比较迷惑,为什么网页gb2312,为什么用你的语句就可以呢?


_________________
Stay hungry,Stay foolish


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 用perl语言get下来网页汉字是乱码
帖子发表于 : 2017-06-01 19:48 

注册: 2017-05-26 23:07
帖子: 10
系统: ubuntu
送出感谢: 2
接收感谢: 0 次
HuntXu,


_________________
Stay hungry,Stay foolish


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 用perl语言get下来网页汉字是乱码
帖子发表于 : 2017-06-02 9:21 
头像

注册: 2007-09-29 3:09
帖子: 5777
送出感谢: 0 次
接收感谢: 5
sstal 写道:
HuntXu 写道:
试试看
代码:
encode("utf8", decode("gbk", $res->content));
感谢hunt,但是我还是比较迷惑,为什么网页gb2312,为什么用你的语句就可以呢?


其实我也只是在以前的脚本里找到写过这么一句而已...

我记得perl的Encode::decode是只会转换成perl的内部格式而已,需要再用encode转才能输出。你也可以试试Encode模块里有个from_to。具体perldoc Encode看看吧


_________________
HUNT Unfortunately No Talent...


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 用perl语言get下来网页汉字是乱码
帖子发表于 : 2017-06-02 10:13 

注册: 2009-08-04 16:33
帖子: 16898
送出感谢: 21
接收感谢: 1829
引用:
HuntXu,

如果你的意思是呼叫 HuntXu
在帳號前面加上 @ :

@HuntXu


页首
 用户资料  
 
13 楼 
 文章标题 : Re: 用perl语言get下来网页汉字是乱码
帖子发表于 : 2017-06-02 13:11 

注册: 2017-05-26 23:07
帖子: 10
系统: ubuntu
送出感谢: 2
接收感谢: 0 次
@poloshiao, 是吗?这样有用吗@sstal


_________________
Stay hungry,Stay foolish


页首
 用户资料  
 
14 楼 
 文章标题 : Re: 用perl语言get下来网页汉字是乱码
帖子发表于 : 2017-06-02 17:05 

注册: 2009-08-04 16:33
帖子: 16898
送出感谢: 21
接收感谢: 1829
引用:
@poloshiao, 是吗?

試試
@poloshiao
後面不要加內容 (單獨一行)

參閱
viewtopic.php?p=3187145#p3187145


页首
 用户资料  
 
15 楼 
 文章标题 : Re: 用perl语言get下来网页汉字是乱码
帖子发表于 : 2017-06-05 20:57 

注册: 2017-05-26 23:07
帖子: 10
系统: ubuntu
送出感谢: 2
接收感谢: 0 次
@sstal
试验一下


_________________
Stay hungry,Stay foolish


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 15 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译