2024-10-03 23:21:37 发布
网友
我试图解析位于这个页面http://www.bluenote.net/newyork/schedule/index.shtml的表。我想知道今天谁在电流上演奏的开始时间和乐队名称。我注意到表中包含p元素的第一个td就是我要查找的。你知道我该怎么做吗?我试着用
soup.findAll("p")
但我试图选择包含“p”元素的整个“td”。在
您可以使用生成器:
first_td = next(td for td in soup.find_all('td') if td.p) # ^ generator ^
find_all将生成所有<td>标记。然后我们按td.p过滤标签。这将返回p标记(假设有一个)。否则它将返回None。由于None的真实性是False,而对于tag对象它是True,因此生成器将用一个<p>标记来枚举所有的<td>标记。在
find_all
<td>
td.p
p
None
False
True
<p>
我们调用next(..)来获得这些元素中的第一个。如果不存在这样的元素,它将引发StopIteration异常。在
next(..)
StopIteration
如果您想要所有这些标记,可以使用列表理解:
您可以使用生成器:
find_all
将生成所有<td>
标记。然后我们按td.p
过滤标签。这将返回p
标记(假设有一个)。否则它将返回None
。由于None
的真实性是False
,而对于tag对象它是True
,因此生成器将用一个<p>
标记来枚举所有的<td>
标记。在我们调用
next(..)
来获得这些元素中的第一个。如果不存在这样的元素,它将引发StopIteration
异常。在如果您想要所有这些标记,可以使用列表理解:
^{pr2}$相关问题 更多 >
编程相关推荐