как выбрать заданные c значения элемента в python3 - PullRequest
1 голос
/ 25 марта 2020

Это мой первый вопрос, так что, может быть, он довольно базовый c. Мне удалось идентифицировать и выбрать элемент, но я не могу извлечь из него значения especifi c, такие как "IDinmobiliarias".

data = soup.select('#PropJSON')
print(data)

Когда я это делаю, я получаю следующий вывод:

[<input id="PropJSON" type="hidden" value='{"id":"186226916","IDinmobiliarias":"108","IDoperaciones":"1","tipoPropiedad":"2","IDdepartamentos":"10","IDzonas":"13","IDpais":"1","refered":1,"particular":"0","temporario":0,"proyecto":0,"destaque":1,"IDmoneda":"1","monto":"1595000","precio_en_usd":1595000,"monedaISO":"USD"}'/>]

Как я могу извлечь "108", например? Я пробовал разные вещи без успеха.

1 Ответ

1 голос
/ 25 марта 2020

выберите вернет вам список. Затем вы можете перебрать этот список и получить данные атрибута value, обращаясь к нему как к словарю. Если у вас есть данные, которые вам нужно будет проанализировать с помощью json, вы можете выбрать из них любой понравившийся элемент.

from bs4 import BeautifulSoup
import json
html = """<input id="PropJSON" type="hidden" value='{"id":"186226916","IDinmobiliarias":"108","IDoperaciones":"1","tipoPropiedad":"2","IDdepartamentos":"10","IDzonas":"13","IDpais":"1","refered":1,"particular":"0","temporario":0,"proyecto":0,"destaque":1,"IDmoneda":"1","monto":"1595000","precio_en_usd":1595000,"monedaISO":"USD"}'/>"""
soup = BeautifulSoup(html, features="lxml")
data = soup.select('#PropJSON')
for input_tag in data:
    json_string = json.loads(input_tag['value'])
    print(json_string['IDinmobiliarias'])

ВЫХОД

108
...