从HTML页面获取数据

时间:2019-04-25 14:55:20

标签: python python-3.x web-scraping beautifulsoup

我从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)

3 个答案:

答案 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中,不同的类用空格分隔。例如,该底部跨度具有三个类别:someclassv9mo-04mg

要查找包含类some和类class的所有标签,请使用列表作为字典值:

data = soup.find('span', {'class':['some', 'class']})

如果需要多个,则将.find()方法替换为.find_all()

答案 2 :(得分:0)

它们是复合类。您可以使用“。”加入他们。并通过选择

elements = [item for item in soup.select('.some.class')]