获取可变的 python BeautifulSoup class 名称
Get a python BeautifulSoup class name that is variable
我正在尝试使用 Python 和 BeautifulSoup
获取变量 class-name,它是 class 栏的子项,但位于div.
<div class="foo">
<div class="bar">
<div class="===>THIS IS THE CLASSNAME I WANT TO GET<===">
<canvas ...></canvas>
<div class="bar2">
<div class="bar3">
我得到 "bar" 元素没有任何问题:
x = item.find('div', class_="bar")
但是如何从下面的 div 访问 class 名称?我可以将其作为列表访问,但不能作为字符串访问:
print(x.div.attrs)
> {'class': ['===>THIS'], [IS], [THE], [CLASSNAME], [I], [WANT], [TO], [GET<===],}
有什么想法吗?
这是您要找的吗?
x = soup.find('div', class_="bar")
print (*x.div['class'])
或者,如果您希望它在变量中:
x = soup.find('div', class_="bar")
l = x.div['class']
s = " ".join(l)
print (s)
使用select('div.bar > div:nth-of-type(1)')
例子
from bs4 import BeautifulSoup
html = """
<div class="foo">
<div class="bar">
<div class="===>THIS IS THE CLASSNAME I WANT TO GET<===">
<canvas ...></canvas>
<div class="bar2">
<div class="bar3">
"""
soup = BeautifulSoup(html, features='html.parser')
for element in soup.select('div.bar > div:nth-of-type(1)'):
print(element["class"])
版画
['===>THIS', 'IS', 'THE', 'CLASSNAME', 'I', 'WANT', 'TO', 'GET<===']
x = soup.find('div', class_="bar")
print (*x.div['class'])
是我一直在寻找的答案。非常感谢所有贡献者!
我正在尝试使用 Python 和 BeautifulSoup
获取变量 class-name,它是 class 栏的子项,但位于div.
<div class="foo">
<div class="bar">
<div class="===>THIS IS THE CLASSNAME I WANT TO GET<===">
<canvas ...></canvas>
<div class="bar2">
<div class="bar3">
我得到 "bar" 元素没有任何问题:
x = item.find('div', class_="bar")
但是如何从下面的 div 访问 class 名称?我可以将其作为列表访问,但不能作为字符串访问:
print(x.div.attrs)
> {'class': ['===>THIS'], [IS], [THE], [CLASSNAME], [I], [WANT], [TO], [GET<===],}
有什么想法吗?
这是您要找的吗?
x = soup.find('div', class_="bar")
print (*x.div['class'])
或者,如果您希望它在变量中:
x = soup.find('div', class_="bar")
l = x.div['class']
s = " ".join(l)
print (s)
使用select('div.bar > div:nth-of-type(1)')
例子
from bs4 import BeautifulSoup
html = """
<div class="foo">
<div class="bar">
<div class="===>THIS IS THE CLASSNAME I WANT TO GET<===">
<canvas ...></canvas>
<div class="bar2">
<div class="bar3">
"""
soup = BeautifulSoup(html, features='html.parser')
for element in soup.select('div.bar > div:nth-of-type(1)'):
print(element["class"])
版画
['===>THIS', 'IS', 'THE', 'CLASSNAME', 'I', 'WANT', 'TO', 'GET<===']
x = soup.find('div', class_="bar")
print (*x.div['class'])
是我一直在寻找的答案。非常感谢所有贡献者!