如何使用 bs4 去除字符串 "Results for 27th July 2019" 中的 "Results for "?
How do I strip off "Results for " in string "Results for 27th July 2019" using bs4?
我需要删除 "Results for " 文本以便稍后将其格式化为特定的日期格式。
问题是
当我 运行 没有 .strip 的代码时,我得到:
'Results for 27th July 2019'
当我试图剥离文本时,出现此错误:
TypeError: a bytes-like object is required, not 'str'
python3:
date = res.parent.find("span", {"class": "standard-headline"}).text.encode('utf8').strip("Results for ")
TypeError: a bytes-like object is required, not 'str'
有解决办法吗?我一直在研究正则表达式,但在没有分隔符的情况下似乎无法解决我的问题。
此致
我认为 replace 方法是您所需要的。只需将 Results for
替换为空字符串即可。
错误是因为 encode('utf8')
return bytes
。你需要decode('utf-8')
。它 return 一个 str()
你可以剥离。
编码后('utf-8')你得到二进制字符串,所以它也期望二进制字符串(字符列表,更准确地说)作为参数。
您可以使用
text.encode('utf-8').decode().strip("Results for ")
或
text.encode('utf-8').strip(b"Results for ")
请记住,strip 不是从字符串头部删除特定文本的最佳选择,因为这也会从尾部删除所有 R、e、s、空格等。
我需要删除 "Results for " 文本以便稍后将其格式化为特定的日期格式。
问题是
当我 运行 没有 .strip 的代码时,我得到:
'Results for 27th July 2019'
当我试图剥离文本时,出现此错误:
TypeError: a bytes-like object is required, not 'str'
python3:
date = res.parent.find("span", {"class": "standard-headline"}).text.encode('utf8').strip("Results for ")
TypeError: a bytes-like object is required, not 'str'
有解决办法吗?我一直在研究正则表达式,但在没有分隔符的情况下似乎无法解决我的问题。
此致
我认为 replace 方法是您所需要的。只需将 Results for
替换为空字符串即可。
错误是因为 encode('utf8')
return bytes
。你需要decode('utf-8')
。它 return 一个 str()
你可以剥离。
编码后('utf-8')你得到二进制字符串,所以它也期望二进制字符串(字符列表,更准确地说)作为参数。 您可以使用
text.encode('utf-8').decode().strip("Results for ")
或
text.encode('utf-8').strip(b"Results for ")
请记住,strip 不是从字符串头部删除特定文本的最佳选择,因为这也会从尾部删除所有 R、e、s、空格等。