Поиск значения в классе div - PullRequest
1 голос
/ 10 марта 2019

Я анализирую сайт, где я сталкиваюсь с чем-то вроде:

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

Используя beautiful soup, как мне извлечь somenumber? В настоящее время я получаю элементы, связанные с именем класса:

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

но не уверен, как получить "somenumber". Я использую beautifulsoup, и довольно плохо знаком с веб-скребком.

Ответы [ 4 ]

1 голос
/ 10 марта 2019

Если вы ищете один элемент

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

Если есть несколько делений, из которых вы хотите получить данные:

a = soup.find_all('div', {'class':"class-name"})
for ai in a :
    print(ai['data-fmid'])
1 голос
/ 10 марта 2019

Используйте селектор атрибутов css , поскольку они предназначены для

items = [item['data-fmid'] for item in soup.select("[data-fmid]")]
0 голосов
/ 10 марта 2019

Определите от 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'))
0 голосов
/ 10 марта 2019

Может быть, это не то, что вы ищете.Но это может помочь.Поскольку вы не указали 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 в коде с реальным именем класса и измените id на data-fmid.Или, если вы хотите получить class имя и id в каждом div, вы можете использовать это loop:

for div in soup.find_all('div'):
    try:
        print ('id : ' + ''.join(div['id']))
        print ('class : ' + ' '.join(div['class']))
        print()
    except:
        pass
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...