Python3.4.0,TypeError: Type str doesn't support the buffer API

求助,程序出现问题:#-*-coding:utf-8-*-importurllib.requestdefget_page(url):returnurllib.reques... 求助,程序出现问题:
#-*-coding:utf-8-*-
import urllib.request
def get_page(url):
return urllib.request.urlopen(url).read()
def get_next_target(page):
start_link=page.find('<a href=')
if start_link==-1:
return None,0
start_quote=page.find('"',start_link)
end_quote=page.find('"',start_quote+1)
url=page[start_quote+1:end_quote]
return url,end_quote
def get_all_links(page):
url_list=[]
while True:
url,endpos=get_next_target(page)
if url:
url_list.append(url)
page=page[endpos:]
else:
break
return url_list

错误提示为:
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
get_all_links(get_page('http://www.google.cn'))
File "D:\New Folder\test\get_all_links.py", line 19, in get_all_links
url,endpos=get_next_target(page)
File "D:\New Folder\test\get_all_links.py", line 8, in get_next_target
start_link=page.find('<a href=')
TypeError: Type str doesn't support the buffer API
展开
 我来答
何人我知己
推荐于2016-02-09 · TA获得超过379个赞
知道小有建树答主
回答量:258
采纳率:50%
帮助的人:189万
展开全部
return urllib.request.urlopen(url).read()

python3.4 return 的是byte类型,
python2 return 的是str类型,
这里你应该改成
return urllib.request.urlopen(url).read().decode('utf-8')

(具体什么编码看网页)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式