Извлечение значения атрибута из div с Beautifulsoup - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь извлечь содержимое атрибута в указанном теге c div на веб-странице. Но атрибут содержит список значений. Как я могу достичь значения?

Значение, которое мне нужно, «999999999» из важное значение

Значение c div:

<div class="1234" data-component="aaaaa" data-settings='{"baseURL": "https://someurl.com/","importantvalue": "999999999"}'>

Я использую следующий код :

import requests
from bs4 import BeautifulSoup

soup = BeautifulSoup(div)


getDiv = soup.find("div", {"class": "1234"})
print(getDiv.attrs['data-settings'])

Мой вывод:

{"baseURL": "https://someurl.com/","importantvalue": "999999999"}

Как мне теперь достичь "важного значения"?

Ответы [ 2 ]

0 голосов
/ 09 января 2020

Согласно документации , вы можете получить доступ к атрибутам тега, обрабатывая тег как словарь .

Следовательно, этого будет достаточно:

print(getDiv.attrs['data-settings']['importantvalue'])
0 голосов
/ 09 января 2020

Похоже, что данные внутри атрибута можно проанализировать с помощью json модуля:

txt = '''<div class="1234" data-component="aaaaa" data-settings='{"baseURL": "https://someurl.com/","importantvalue": "999999999"}'>'''

import json
from bs4 import BeautifulSoup

soup = BeautifulSoup(txt, 'html.parser')

data = json.loads( soup.div['data-settings'] )
print(data['importantvalue'])

Отпечатки:

999999999
...