如何 select python3 中元素的特定值
how to select specific values of an element in python3
这是我的第一个问题,所以它可能很基础。
我已经设法对元素进行 id 和 select,但我无法从中提取特定值,例如 "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”?
我试过不同的东西都没有成功。
select 会 return 给你一个列表。然后,您可以遍历该列表并通过像访问字典一样访问它来获取 value 属性的数据。获得数据后,您需要使用 json 对其进行解析,然后您可以 select 从中提取任何您喜欢的元素。
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
这是我的第一个问题,所以它可能很基础。 我已经设法对元素进行 id 和 select,但我无法从中提取特定值,例如 "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”? 我试过不同的东西都没有成功。
select 会 return 给你一个列表。然后,您可以遍历该列表并通过像访问字典一样访问它来获取 value 属性的数据。获得数据后,您需要使用 json 对其进行解析,然后您可以 select 从中提取任何您喜欢的元素。
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