python类型问题,需要的是一个字节型对象,而不是一个字符串对象,出问题的源码:
def get_url_count(url):
if not (url.startswith('http://') or url.startswith('https://')):
return u'url地址不符合规则'
d = urllib.request.urlopen(url)
content = d.read()
return len(content.split('<a href=')) - 1 # TypeError: a bytes-like object is required, not 'str'
在函数返回的时候出现了类型错误“TypeError: a bytes-like object is required, not ‘str’”
解决方法:
对要分割的字符串进行编码:
return len(content.split('<a href='.encode())) - 1
也就是在“<a href=”后面加个".encode()",使用注册编码的编解码器对字符串进行编码;
问题解决: