我试图将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>'