gpt4 book ai didi

python - BeautifulSoup find_all 带参数

转载 作者:行者123 更新时间:2023-12-01 01:41:22 27 4
gpt4 key购买 nike

这是我第一次使用 BeautifulSoup,我不知道我做错了什么

<table class="table sortable table-striped table-condensed r-tab-enabled">
<thead>
<tr class="r-tab-buttons r-only-tablet">
<th class="r-tab-button active" data-defaultsort="disabled" data-group="1">Picks</th>
<th class="r-tab-button" data-defaultsort="disabled" data-group="2">Bans</th>
<th class="r-tab-button" data-defaultsort="disabled" data-group="3">Combined</th>
</tr>

这是我正在使用的 HTML 页面示例和我的代码:

r = requests.get(URL, headers=headers)
soup = bs4.BeautifulSoup(r.text, 'lxml')

table = soup.find_all(lambda tag: tag.name=='table' and tag.has_attr('class') and tag['class'] =="table sortable table-striped table-condensed r-tab-enabled")

它什么也没返回,但这有效

table = soup.find_all(lambda tag: tag.name=='table' and tag.has_attr('class'))

那么它应该什么也不返回吗?或者如何将参数输入到 find_all

最佳答案

示例代码的问题是将 tag['class'] 与字符串值 "table sortable table-striped table-condensed r-tab-enabled"tag['class'] 是一个数组。

要修复代码,请将 tag['class'] 与数组进行比较

table = soup.find_all(lambda tag: tag.name=='table' and tag.has_attr('class') and tag['class'] == ["table", "sortable", "table-striped", "table-condensed", "r-tab-enabled"])

或者正如 @Jon 在评论中指出的那样,使用选择器代替

table = soup.select('table.table.sortable.table-striped.table-condensed')

关于python - BeautifulSoup find_all 带参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51854097/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com