找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 8057|回复: 15

[已回复] python3.4提取字符串

1

主题

7

帖子

7

积分

贫民

积分
7
创世之枪 发表于 2016-8-23 14:22:27 | 显示全部楼层 |阅读模式
我是python3.4.。。。。。。。有一个很深奥的问题,我通过urllib.request.urlopen(url).read()将网页以字符串形式保存下来到一个变量,提取出来的信息都是四个字符串代表一个中文,使用printf不能自动识别为中文,毕竟type是str格式的
3.4没有decode()这个函数,bytes.decode()这个函数不识别str的接口,请问有没有什么办法能将四个字符串格式的unicode识别为一个unicode类型中文?

回复

使用道具 举报

0

主题

30

帖子

30

积分

版主

Rank: 7Rank: 7Rank: 7

积分
30

活跃会员热心会员突出贡献荣誉管理

鸟笨Andy 发表于 2016-8-24 15:36:14 | 显示全部楼层
我用py3.4做了测试

Python 3.4.4 (v3.4.4:737efcadf5a6, Dec 19 2015, 20:38:52)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib.request
>>> content = urllib.request.urlopen("http://www.baidu.com").read()
>>> print(content.decode("utf8"))

得出的打印是可以正常输出中文的,你是怎么做的呢

不会贴图 截取前半部分给你看看
<!DOCTYPE html><!--STATUS OK--><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta content="always" name="referrer"><meta name="theme-color" content="#2932e1"><link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" /><link rel="search" type="application/opensearchdescription+xml" href="/content-search.xml" title="百度搜索" /><link rel="icon" sizes="any" mask href="//www.baidu.com/img/baidu.svg"><link rel="dns-prefetch" href="//s1.bdstatic.com"/><link rel="dns-prefetch" href="//t1.baidu.com"/><link rel="dns-prefetch" href="//t2.baidu.com"/><link rel="dns-prefetch" href="//t3.baidu.com"/><link rel="dns-prefetch" href="//t10.baidu.com"/><link rel="dns-prefetch" href="//t11.baidu.com"/><link rel="dns-prefetch" href="//t12.baidu.com"/><link rel="dns-prefetch" href="//b1.bdstatic.com"/><title>百度一下,你就知道</title>

回复 支持 1 反对 0

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2016-8-24 16:58:12 | 显示全部楼层
鸟笨Andy 发表于 2016-8-24 15:36
我用py3.4做了测试

Python 3.4.4 (v3.4.4:737efcadf5a6, Dec 19 2015, 20:38:52)

嗯, 我也测试过了, 没有问题
回复 支持 反对

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2016-8-24 16:59:27 | 显示全部楼层
谁说python3.4中没有decode()方法了?
回复 支持 反对

使用道具 举报

1

主题

7

帖子

7

积分

贫民

积分
7
创世之枪  楼主| 发表于 2016-8-24 17:03:03 | 显示全部楼层
鸟笨Andy 发表于 2016-8-24 15:36
我用py3.4做了测试

Python 3.4.4 (v3.4.4:737efcadf5a6, Dec 19 2015, 20:38:52)

我的str类型没有decode()是为什么?python解释器是官方最新的
Python 3.6.0a4 - 2016-08-15
Download Windows x86 executable installer         <-这个
编辑器用的pycharm也是官方下的最新版
任意一个str类型后面.decode()我都报错
我不知道是不是我哪里没有引入?
回复 支持 反对

使用道具 举报

0

主题

30

帖子

30

积分

版主

Rank: 7Rank: 7Rank: 7

积分
30

活跃会员热心会员突出贡献荣誉管理

鸟笨Andy 发表于 2016-8-25 10:07:30 | 显示全部楼层
你最好把报错贴出来,不然不知道是什么引起的,至于python3.6有没有decode,我没有验证
回复 支持 反对

使用道具 举报

1

主题

7

帖子

7

积分

贫民

积分
7
创世之枪  楼主| 发表于 2016-8-25 23:09:55 | 显示全部楼层
鸟笨Andy 发表于 2016-8-25 10:07
你最好把报错贴出来,不然不知道是什么引起的,至于python3.6有没有decode,我没有验证 ...

好吧
  1. C:\Python34\python.exe C:/Users/hanzhang/Desktop/test/main.py
  2. http://www.dytt8.net//html/gndy/jddy/20160320/50523.htm
  3. Traceback (most recent call last):
  4.   File "C:/Users/hanzhang/Desktop/test/main.py", line 36, in <module>
  5.     print(urlmov[movposh:movpost].decode())
  6. AttributeError: 'str' object has no attribute 'decode'

  7. Process finished with exit code 1
复制代码

回复 支持 反对

使用道具 举报

1

主题

7

帖子

7

积分

贫民

积分
7
创世之枪  楼主| 发表于 2016-8-25 23:13:14 | 显示全部楼层
  1.         urlmov = str(urllib.request.urlopen(http).read())
  2.         movposh = urlmov.find(downhead)
  3.         movpost = urlmov.find(downtail, movposh) - 1
  4.         print(urlmov[movposh:movpost].decode())


  5. Traceback (most recent call last):
  6.   File "C:/Users/hanzhang/Desktop/test/main.py", line 36, in <module>
  7.     print(urlmov[movposh:movpost].decode())
  8. AttributeError: 'str' object has no attribute 'decode'
复制代码
回复 支持 反对

使用道具 举报

1

主题

7

帖子

7

积分

贫民

积分
7
创世之枪  楼主| 发表于 2016-8-26 10:16:19 | 显示全部楼层
鸟笨Andy 发表于 2016-8-25 10:07
你最好把报错贴出来,不然不知道是什么引起的,至于python3.6有没有decode,我没有验证 ...

已贴
回复 支持 反对

使用道具 举报

1

主题

7

帖子

7

积分

贫民

积分
7
创世之枪  楼主| 发表于 2016-8-26 10:16:45 | 显示全部楼层
blueelwang 发表于 2016-8-24 16:59
谁说python3.4中没有decode()方法了?

已发
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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