我正在通过一个类似以下内容的网站进行解析:
<div class = "class-name" data-fmid="somenumber">
如何使用beautiful soup
提取一些数字?我目前正在获取与类名相关的元素:
soup.find_all('div', {'class':'classname'})
但不确定如何获取“ somenumber”。我使用的是beautifulsoup
,这对于网络抓取来说是一个新手。
答案 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'))