使用 Bs4 从 HTML 复制元素以列为单独的索引

Copying elements from HTML using Bs4 to list as seperate indexes

我想从网站提取赔率。在下面你可以看到我的代码。我已经使用 .find_all() 找到 div 标签与 class = odd_value ,其中赔率位于 span 标签之间。当我将它附加到列表时,它会将所有元素作为一个索引复制到列表中。Here is my code where I have printed the length of the list, to show you my problem

如何将带有 class = odd_value 的每个 div 标记作为单独的索引而不是一个大索引复制到我的列表:listOdds

.find_all() returns 匹配过滤器的结果集(列表的子类),并且您使用 .append() 将其附加到另一个列表因此您的列表变为 [[<div ..., <div ..., ...]]其长度为 1.

所以要解决这个问题,您可以简单地将它分配给 listOdds 变量,如下所示:

listOdds = sovs.find_all("div", {"class": "odd_value"})

或者为了使其可连接,您可以通过执行以下操作将每个项目转换为字符串:

listOdds = list(map(str, sovs.find_all("div", {"class": "odd_value"})))