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

标签 python beautifulsoup python-requests

我正在尝试使用 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/

相关文章:

python - 在 python 中为 Hadoop Map Reduce 创建自定义可写键/值类型?

python - 使用 beautifulsoup 从 URL 列表中获取第一个 URL

javascript - PhantomJS 未检索到正确的数据

python - 将 curl 命令转换为 Python 请求

python - Pycharm 在使用 pipenv 安装包时警告 package requirement not satisfied

python - 在Python的re中,如果子字符串在开头或中间匹配,如何获取字符串?

python - 功能测试没有按预期进行(AoC 第 4 天的一部分)

Python 抓取无法提取所有 <li> 的

Python 请求 : URL with percent character

python - Flask 应用程序在测试时随机拒绝连接