在div类中寻找价值

时间:2019-03-10 02:21:11

标签: python beautifulsoup

我正在通过一个类似以下内容的网站进行解析:

<div class = "class-name" data-fmid="somenumber"> 

如何使用beautiful soup提取一些数字?我目前正在获取与类名相关的元素:

soup.find_all('div', {'class':'classname'}) 

但不确定如何获取“ somenumber”。我使用的是beautifulsoup,这对于网络抓取来说是一个新手。

4 个答案:

答案 0 :(得分:1)

如果您要查找单个元素

a = soup.find('div', {'class':"class-name"})
a['data-fmid']

如果有多个div,则要获取以下数据:

a = soup.find_all('div', {'class':"class-name"})
for ai in a :
    print(ai['data-fmid'])

答案 1 :(得分:1)

使用css attribute selector,因为这就是他们的目的

items = [item['data-fmid'] for item in soup.select("[data-fmid]")]

答案 2 :(得分:0)

也许这不是您想要的。但是,这可能会有所帮助。因为您没有提供要抓取的URL,所以我仅举一个网站示例。

import urllib.request
from urllib.request import urlopen
from bs4 import BeautifulSoup

url = 'http://dnedesign.us.to/tables/'
page = urllib.request.urlopen(url)
soup = BeautifulSoup(page, "html.parser")

status = []
for div in soup.find_all('div', attrs={'class':'mobile-menu-anchor fixed-primary-menu'}):
    print (''.join(div['id']))

您可以使用实际的URL地址更改url中的值,使用实际的类名更改代码中的class的名称,并使用{{1 }}。 或者,如果您想在每个id中获取data-fmid名称和class,则可以使用以下id

div

答案 3 :(得分:0)

通过div标识class

all_num_class = soup.find_all('div', class_='classname') 
for ai in all_num_class:
    print(ai.get('data-fmid'))

或者您可以使用任何attr来标识要爬网的div

all_num_class = soup.find_all('div', attr={'class':'classname'}) 
for ai in all_num_class:
    print(ai.get('data-fmid'))