Python 3.x Python程序没有';t从返回链接http://xkcd.com/353 (大学CS课程简介) def get_页面(url): 尝试: 导入URL库 返回urllib.urlopen(url.read()) 除: 返回“错误” def get_next_目标(第页): start_link=page.find(“
我发现了我之前发布的代码在Python2中工作,但不是Python3。我更改了def get_页面(url)中的导入和返回以反映Py3的要求,还添加了.decode('utf-8'),它修复了类型错误:需要类似字节的对象,而不是'str'Python 3.x Python程序没有';t从返回链接http://xkcd.com/353 (大学CS课程简介) def get_页面(url): 尝试: 导入URL库 返回urllib.urlopen(url.read()) 除: 返回“错误” def get_next_目标(第页): start_link=page.find(“,python-3.x,search,computer-science,Python 3.x,Search,Computer Science,我发现了我之前发布的代码在Python2中工作,但不是Python3。我更改了def get_页面(url)中的导入和返回以反映Py3的要求,还添加了.decode('utf-8'),它修复了类型错误:需要类似字节的对象,而不是'str' def get_page(url): try: import urllib return urllib.urlopen(url).read() except: return "error" d
def get_page(url):
try:
import urllib
return urllib.urlopen(url).read()
except:
return "error"
def get_next_target(page):
start_link = page.find('<a href=')
if start_link == -1:
return None, 0
else:
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 print_all_links(page):
while True:
url, endpos = get_next_target(page)
if url:
print(url)
page = page[endpos:]
else:
break
print_all_links(get_page('http://xkcd.com/353'))
def get_page(url):
try:
import urllib.request
return urllib.request.urlopen(url).read().decode('utf-8')
except:
return "error"