从 python 中的变量列表中过滤数字



我正在尝试编写一个脚本,为我从网站上提取库存号。我已经能够使用 BeautifulSoup 在页面上找到该元素,但我无法将该变量的输出转换为数字。我尝试将变量中的数据转换为列表,然后使用split_list =[i.split() for i in numbers]然后按no_integers = [token for token in tokens if not token.isdigit()]进一步过滤,所有这些都是我在堆栈溢出上找到的。我是一个绝对的初学者,任何帮助都非常感谢。这是代码和输出

def requeststock():
response = requests.get(baselnk)
soup = bs(response.content, "html.parser")
find_element = soup.find_all("span", {"class":"page-main__emphasis"})
correct_element = [d.text.encode('utf-8') for d in find_element]

这就是到目前为止返回的内容

[b'Boosted XR Battery', b'88']

我只希望末尾的整数从函数返回。谢谢!!

编辑:我修复了它。但我不知道怎么做。这是我的解决方案。

def requeststock():
response = requests.get(baselnk)
soup = bs(response.content, "html.parser")
for wrapper in soup.find_all('span', {"class":"page-main__emphasis"}):
numero = wrapper.text
return numero

互联网是一个神奇的东西。

对你的问题有点困惑。我想你已经很接近了。这是一个简短的示例,可以帮助您更好地进行筛选。

>>> mylist = [b'Boosted XR Battery', b'88']
>>> [i for i in mylist if i.isdigit()]
[b'88']

编辑:我修复了它....但我不知道怎么做。这是我的解决方案。

def requeststock():
response = requests.get(baselnk)
soup = bs(response.content, "html.parser")
for wrapper in soup.find_all('span', {"class":"page-main__emphasis"}):
numero = wrapper.text
return numero

互联网是一个神奇的东西。

这是一个非常冗长但简单的解决方案:

var = [b'Boosted XR Battery', b'88']
var = [i for i in var if i.isdigit()]
var = str(var).replace('b', '')
var = var.replace('[', '')
var = var.replace(']', '')
var = var.replace("'", '')
print(int(var)) # 88

肯定有更好的方法可以做到这一点,但这是迄今为止最简单/最容易理解的。

最新更新