我真的很绝望在他最后的日子里将我的字符串数字值转换为整数,所以我尝试了这个:
快照:
代码试验:
follower_count = int(browser.find_element_by_xpath('/html/body/div[1]/section/main/div/header/section/ul/li[2]/a/span').text) convert_follower_count = re.sub('[^0-9]','', follower_count)
…不起作用:
Traceback (most recent call last): File "C:\Users\Desktop\TwitPy\quickstart.py", line 79, in <module> followers_count = re.sub('[^0-9]','', follower_count) File "C:\Users\AppData\Local\Programs\Python\Python38\lib\re.py", line 208, in sub return _compile(pattern, flags).sub(repl, string, count) TypeError: expected string or bytes-like object
你遇到的错误是因为 follower_count 已经是一个整数了,而你传递给 re.sub 的参数应该是一个字符串,而不是整数。re.sub 需要对字符串进行操作,不能直接应用于整数。
follower_count
re.sub
要解决这个问题,首先确保 follower_count 是字符串类型,然后再用 re.sub 进行处理。如果 follower_count 已经是一个字符串,你可以直接用 re.sub 来去除其中的非数字字符。
以下是修改后的代码:
follower_count = browser.find_element_by_xpath('/html/body/div[1]/section/main/div/header/section/ul/li[2]/a/span').text # 确保 follower_count 是字符串,并使用 re.sub 去除所有非数字字符 convert_follower_count = re.sub('[^0-9]', '', follower_count) # 将提取出的数字字符串转换为整数 follower_count_int = int(convert_follower_count) print(follower_count_int)
1,234
1.2k
re.sub('[^0-9]', '', follower_count)
convert_follower_count
follower_count_int
如果你遇到类似的情况(比如 k, M 等后缀),你可以对它们进行额外的处理,例如将 k 转换为千,M 转换为百万等。
k
M