全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

IP归属甄别会员请立即修改密码
查看: 3029|回复: 25
打印 上一主题 下一主题

PYTHON 获取GB2312的问题

[复制链接]
跳转到指定楼层
1#
发表于 2015-12-3 08:43:57 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
我用了lxml的etree定位的。

然后编码问题到现在都是一个非常蛋疼的问题。我获取了一个标题,然后直接打印出来是乱码的。

在后面encode('utf8') 显示的是UTF8不能编码这玩意。
encod gb2312也是

球袋
26#
 楼主| 发表于 2015-12-3 11:11:43 | 只看该作者
HelloAoA 发表于 2015-12-3 10:18
三个方法,因为我也是彩笔,这样看看不懂的……
1、把soup = BeautifulSoup(content_html,"lxml")中的lxm ...

- -是BS版本的问题。我的PY2.9只装了BS3 所以出问题了。。装BS4就OK了。
25#
发表于 2015-12-3 10:18:56 | 只看该作者
flydon 发表于 2015-12-3 10:12
这个脚本在我这里出现了如下错误

三个方法,因为我也是彩笔,这样看看不懂的……
1、把soup = BeautifulSoup(content_html,"lxml")中的lxml去掉,只保留soup = BeautifulSoup(content_html)
2、用三个'注释掉bs的,头文件也注释只用看lxml的
3、bs你可以先配置一下,网上的小脚本测试一下……
我用的就是requests,你可以用
  1. print 'Encoding: ',r.encoding
  2. print 'Get Url :',url
  3. print 'Status Code: ',r.status_code
复制代码

得到返回编码,返回地址,返回状态码,编码搞不定的就百度 python 编码-》utf8
24#
 楼主| 发表于 2015-12-3 10:12:26 | 只看该作者
HelloAoA 发表于 2015-12-3 09:28
pydev测试通过,原来写的……还有192.。。。这货还要自己搞……有些编码器不支持中文,还有bs4的能够直接 ...

这个脚本在我这里出现了如下错误
  1. Encoding:  ISO-8859-1
  2. Get Url : http://www.biquge.la/book/176/5054609.html
  3. Status Code:  200
  4. Traceback (most recent call last):
  5.   File "E:/python/1GB/main.py", line 35, in <module>
  6.     soup = BeautifulSoup(content_html,"lxml")
  7.   File "build\bdist.win32\egg\BeautifulSoup.py", line 1522, in __init__
  8.   File "build\bdist.win32\egg\BeautifulSoup.py", line 1147, in __init__
  9.   File "build\bdist.win32\egg\BeautifulSoup.py", line 1189, in _feed
  10.   File "C:\Python27\lib\sgmllib.py", line 104, in feed
  11.     self.goahead(0)
  12.   File "C:\Python27\lib\sgmllib.py", line 174, in goahead
  13.     k = self.parse_declaration(i)
  14.   File "build\bdist.win32\egg\BeautifulSoup.py", line 1463, in parse_declaration
  15.   File "C:\Python27\lib\markupbase.py", line 109, in parse_declaration
  16.     self.handle_decl(data)
  17.   File "build\bdist.win32\egg\BeautifulSoup.py", line 1448, in handle_decl
  18.   File "build\bdist.win32\egg\BeautifulSoup.py", line 1381, in _toStringSubclass
  19.   File "build\bdist.win32\egg\BeautifulSoup.py", line 1251, in endData
  20. AttributeError: 'str' object has no attribute 'text'
复制代码
23#
 楼主| 发表于 2015-12-3 10:06:10 | 只看该作者
HelloAoA 发表于 2015-12-3 09:54
你确定吗……为什么没有……
欢迎你到官网巴拉巴拉……https://pypi.python.org/pypi/beautifulsoup4/4 ...

好吧,我是新手。。我先用你的脚本看看。
22#
 楼主| 发表于 2015-12-3 09:59:18 | 只看该作者
jsenet 发表于 2015-12-3 09:48
我测试下。。。url就换笔趣阁吧  也是gbk的

你们都是用urllib2的。我用的是requests,我看了你的是直接在获取文件之后就转码了。但是我发现用你的思路,但是pycharm给我报错了。requests后只一个response 获取文件后是.text 但是转码后什么东西都没了。
21#
发表于 2015-12-3 09:54:36 | 只看该作者
flydon 发表于 2015-12-3 09:44
你这个是GBK和GB2312差别略大把。另外BS没4只有3,PY2不支持4.



你确定吗……为什么没有……
欢迎你到官网巴拉巴拉……https://pypi.python.org/pypi/beautifulsoup4/4.4.1

gbk跟gb2312这几个原理都是共同的……
20#
发表于 2015-12-3 09:54:20 | 只看该作者
flydon 发表于 2015-12-3 09:52
- -pycharm也是调用的CMD好伐。。。

不一样的,相信我。你试试utf-8输出,你就知道了,CMD不支持utf-8的。
19#
 楼主| 发表于 2015-12-3 09:52:23 | 只看该作者
pathletboy 发表于 2015-12-3 09:49
直接在pycharm里跑啊,cmd不支持utf-8,编码转来转去就搞不清楚了,或者你右键Edit with IDLE,然后F5也 ...

- -pycharm也是调用的CMD好伐。。。
18#
发表于 2015-12-3 09:49:33 | 只看该作者
flydon 发表于 2015-12-3 09:47
我不是用ssh跑的,我直接是用CMD跑的。另外。文件是用pycharm保存的,全程使用的是UTF8 ...

直接在pycharm里跑啊,cmd不支持utf-8,编码转来转去就搞不清楚了,或者你右键Edit with IDLE,然后F5也可以。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-9-28 07:07 , Processed in 0.104055 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表