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 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

我发现了我之前发布的代码在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"


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"