gpt4 book ai didi

python - 如何在具有多个值的 div 类中查找 ID BS4 Python

转载 作者:行者123 更新时间:2023-12-01 09:29:39 25 4
gpt4 key购买 nike

我正在尝试使用 BS4 在 div 类中查找具有多个值的 ID,HTML 为

<div class="size ">
<a class="selectSize"
id="25746"
data-ean="884751585616"
ata-test="170"
data-test1=""
data-test2="1061364-41"
data-test3-original="41"
data-test4-eu="41"
data-test5-uk="7"
data-test6-us="8"
data-test-cm="26"
</div>
</div>

我想找到data-test5-uk,我当前的代码是soup =

bs(size.text,"html.parser")
sizes = soup.find_all("div",{"class":"size"})
size = sizes[0]["data-test5-uk"]

size.text 来自对带有 html 的站点的 get 请求,但它返回

    size = sizes[0]["data-test5-uk"]
File "C:\Users\ninja_000\AppData\Local\Programs\Python\Python36\lib\site-packages\bs4\element.py", line 1011, in __getitem__
return self.attrs[key]
KeyError: 'data-test5-uk'

感谢帮助!

最佳答案

说明,然后是解决方案

.find_all('tag')用于查找该标签的所有实例,稍后我们可以循环遍历它们。

.find('tag')用于查找ONLY第一个实例。

我们可以使用 ['arg'] 提取参数的内容或者 。 .get('arg')这是相同

from bs4 import BeautifulSoup

html = '''<div class="size ">
<a class="selectSize"
id="25746"
data-ean="884751585616"
ata-test="170"
data-test1=""
data-test2="1061364-41"
data-test3-original="41"
data-test4-eu="41"
data-test5-uk="7"
data-test6-us="8"
data-test-cm="26"
</div>'''

soup = BeautifulSoup(html, 'lxml')

one_div = soup.find('div', class_='size ')

print( one_div.find('a')['data-test5-uk'])
# your code didn't work because you weren't in the a tag
# we have found the tag that contains the tag .find('a')['data-test5-uk']

# for multiple divs
for each in soup.find_all('div', class_='size '):
# we loop through each instance and do the same
datauk = each.find('a')['data-test5-uk']
print('data-test5-uk:', datauk)

输出:

data-test5-uk: 7

额外

为什么你的 ['arg'] ? - 您尝试提取 ["data-test5-uk"]该分区的。 <div class="size "> div 没有类似的参数,除了 class="size "

关于python - 如何在具有多个值的 div 类中查找 ID BS4 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50078736/

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