gpt4 book ai didi

python - 我想从具有类值的 div 打印数据,但我的代码不断从另一个类似的 div 返回其他数据

转载 作者:行者123 更新时间:2023-11-28 00:32:01 25 4
gpt4 key购买 nike

这是 HTML 代码:

<div class="sizeBlock">
<div class="size">
<a class="selectSize" id="44526" data-size-original="36.5">36.5</a>
</div>
<div class="size inactive active">
<a class="selectSize" id="44524" data-size-original="40">40</a>
</div>
<div class="size">
<a class="selectSize" id="44525" data-size-original="40.5">40.5</a>
</div>
</div>

我想获取 id 标签的值和 <div class="size"> 中的 data-size-original|仅。

这是我的代码:

for sizeBlock in soup.select('div.size a.selectSize'):
aid = sizeBlock.get('id')
size = sizeBlock.get('data-size-original')
print(aid, size)

问题在于它还返回来自 <div class="size inactive active"> 的数据

Here's a picture of the execution of the code

最佳答案

我认为您可以使用类属性选择器(通过使用 as 属性选择器,您可以使用单个适当的类限制到父 div)并生成字典:

from bs4 import BeautifulSoup as bs
import requests

html = '''<div class="sizeBlock">
<div class="size">
<a class="selectSize" id="44526" data-size-original="36.5">36.5</a>
</div>
<div class="size inactive active">
<a class="selectSize" id="44524" data-size-original="40">40</a>
</div>
<div class="size">
<a class="selectSize" id="44525" data-size-original="40.5">40.5</a>
</div>
</div>'''

soup = bs(html, 'lxml')
d = {i['id']:i['data-size-original'] for i in soup.select('[class=size] a')}
print(d)

如果要存储在变量中,请将字典理解调整为循环

for i in soup.select('[class=size] a'):
aid = i['id'];size = i['data-size-original']
print(aid, size)

关于python - 我想从具有类值的 div 打印数据,但我的代码不断从另一个类似的 div 返回其他数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58468948/

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