编写一个打开网页的函数,并返回该页面上所有链接及其文本的字典。链接是字典键,文本是字典值。
这是我到目前为止所拥有的。
import urllib.request as urlrequest
def getLinks(url):
page=urlrequest.urlopen(url)
lines = page.readlines()
url_list={}
for line in lines:
if '<a href=' in line:
removeHref=line[8:]
end=removeHref.find('>')
url=removeHref[0:end]
removeHref=removeHref[end+1:]
print (url)
end2=removeHref.find('<')
text=removeHref[0:end2]
print ('%s \n' % text)
url_list[url] = text
url = input("URL: ")
getLinks(url)
但是当我输入一个链接并运行它时,它会给我以下错误:
if '<a href=' in line:
TypeError: a bytes-like object is required, not 'str'
我该如何解决这个问题?
答案 0 :(得分:1)
您无法检查string
和byte
之间的遏制,它必须是byte
和byte
或string
和{{ 1}}。
由于您的网页已作为string
对象返回。你应该这样做:
byte