如何将抓取的 html 列表变成浮点数

How to turn scraped html list into a float

我正在抓取数据并通过 soup 对其进行解析,然后尝试进行浮动比较

这是我的代码:

with requests.Session() as s:
      r = s.get(url[pid], headers=headers)
      soup = BeautifulSoup(r.text, 'html.parser')
      sizes = soup.findAll(True,{'class':'product__sizes-size-1'})
      uksizes = [f"UK {allsize.text}" for allsize in sizes]
      parsed_sizes = [item for item in sizes if float(sizes) >=1 and float(sizes) <=20]

这是我的 html:

[<span class="product__sizes-size-1">6</span>, <span class="product__sizes-size-1">6.5</span>, <span class="product__sizes-size-1">7</span>, <span class="product__sizes-size-1">7.5</span>, <span class="product__sizes-size-1">8</span>, <span class="product__sizes-size-1">8.5</span>, <span class="product__sizes-size-1">9</span>, <span class="product__sizes-size-1"></span>, <span class="product__sizes-size-1"></span>, <span class="product__sizes-size-1"></span>, <span class="product__sizes-size-1"></span>, <span class="product__sizes-size-1"></span>, <span class="product__sizes-size-1"></span>, <span class="product__sizes-size-1"></span>]

我试过使用 str(sizes) 将它们变成浮点数,但还是没用。

好吧,您的一个衬里有误,您应该将其与新创建的“item”变量而不是整个列表进行比较。

这是一个例子

sizes = [6, 5, 10, 30]

parsed_sizes = [item for item in sizes if 1 <= item <= 20]

print(parsed_sizes)

输出:

[6, 5, 10]