您好,匿名用户
随意问技术百科期待您的加入

pyquery中文乱码的问题

0 投票

生成的网页打卡乱码,但是url若换成www.baidu.com则正常,查看后发现贴吧编码是gbk,百度首页编码是gb2312。不知道是什么原因?

# -*- coding:utf-8 -*-
from pyquery import PyQuery as pq
import codecs

d = pq(url'http://tieba.baidu.com/f?kw=宋时行')
sep = d('body').html()
file = codecs.open('new.html', 'w', 'utf-8')
file.write(sep)
file.close()
用户头像 提问 2013年 12月17日 @ Dionysus 上等兵 (229 威望)
分享到:

1个回答

0 投票

第一,url里面汉字你使用urllib2.quote()转码下

d = pq(url'http://tieba.baidu.com/f?kw=' + urllib2.quote('宋时行'))

第二,load下来的页面要从gbk转到unicode码在转为utf-8

sep = d('body').html().decode('gbk').encode('utf-8')

你可以试试这,我用urllib2就是这样写的,没用过pyquery,所以具体不清楚

用户头像 回复 2013年 12月15日 @ 随意问站长 上等兵 (310 威望)
提一个问题:

相关问题

+1 投票
1 回复 79 阅读
用户头像 提问 2012年 12月18日 @ Saber 中士 (1,234 威望)
0 投票
1 回复 68 阅读
+2 投票
1 回复 94 阅读
用户头像 提问 2012年 12月26日 @ Poppy 上等兵 (395 威望)
+1 投票
1 回复 108 阅读
用户头像 提问 2013年 1月13日 @ Dante 上等兵 (290 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...