我试图将bbc的来源分为两部分,以便获得头条新闻:

import urllib.request

url = 'http://www.bbc.com/'
page = urllib.request.urlopen(url)
contents = page.read()
page.close()

split1 = '<a class="media__link" href="/news/world-us-canada-39965107" rev="hero1|headline">\n'
split2 = '\n</a>'

title = contents.split(split1)[1].split(split2)[1]

print(title)


但我收到此错误:

title = contents.split(split1)[1].split(split2)[1]
TypeError: a bytes-like object is required, not 'str'

最佳答案

HTTPResponse.read([amt])
  
  读取并返回响应主体,或直至下一个amt字节。


contents = page.read()


返回一个字节对象,而不是str。因此,分割定界符也必须是字节对象。只需在字符串前面添加b

split1 = b'<a class="media__link" href="/news/world-us-canada-39965107" rev="hero1|headline">\n'
split2 = b'\n</a>'

08-19 21:30