我从HTML页面获取了一些数据,如下所示
<span class="some class abc-vc"> 123</span>
<span class="some class vde-bc"> 435</span>
<span class="some class v9mo-04mg"> 456 </span>
我只想搜索
some class
标记的一部分,以便我可以一个一个地存储变量
我该如何实现?
代码:
from urllib.request import Request, urlopen
import bs4
url = 'url'
page = urlopen(url).read()
soup = bs4.BeautifulSoup(page, 'html.parser')
data = soup.find('span',{'class':'some class'})
print (data.text)
答案 0 :(得分:2)
您可以使用正则表达式查找特定项目。尝试以下代码。
from bs4 import BeautifulSoup
import re
data='''<span class="some class abc-vc"> 123</span>
<span class="some class vde-bc"> 435</span>
<span class="some class v9mo-04mg"> 456 </span>'''
soup=BeautifulSoup(data,'html.parser')
for item in soup.find_all('span',class_=re.compile('some class')):
print(item.text)
输出:
123
435
456
答案 1 :(得分:1)
在HTML中,不同的类用空格分隔。例如,该底部跨度具有三个类别:some
,class
和v9mo-04mg
。
要查找包含类some
和类class
的所有标签,请使用列表作为字典值:
data = soup.find('span', {'class':['some', 'class']})
如果需要多个,则将.find()
方法替换为.find_all()
。
答案 2 :(得分:0)
它们是复合类。您可以使用“。”加入他们。并通过选择
elements = [item for item in soup.select('.some.class')]