如何使用 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、空格等。