我正在尝试使用Python中的soap获取链接的信息。我可以使用信息获取整个Array,但是我不知道如何以自己想要的方式操作信息。
例如:我要在线显示姓名(状态)和状态。
我尝试仅获取div,但结果返回“ none”。
from bs4 import BeautifulSoup
import requests
source = requests.get('http://apps.cptm.sp.gov.br:8080/AppMobileService/api/LinhasMetropolitanas').text
soup = BeautifulSoup(source, 'html.parser')
print(soup)
答案 0 :(得分:0)
在这种情况下,您根本不需要BeautifulSoup
。您可以直接获取source.contents
,对其进行解码,然后使用 ast.literal_eval 来获取列表。
import requests
import ast
source = requests.get('http://apps.cptm.sp.gov.br:8080/AppMobileService/api/LinhasMetropolitanas')
content_list=ast.literal_eval(source.content.decode("utf-8"))
for d in content_list:
print(d['Nome'],d['Status'])
输出:
AZUL Operação Normal
VERDE Operação Normal
VERMELHA Operação Normal
AMARELA Operação Normal
LILÁS Operação Normal
RUBI Operação Normal
DIAMANTE Velocidade Reduzida
ESMERALDA Velocidade Reduzida
TURQUESA Operação Normal
CORAL Operação Normal
SAFIRA Velocidade Reduzida
content_list
看起来像这样
[{'Nome': 'AZUL', 'Status': 'Operação Normal', 'Tipo': 'M', 'Descricao': '', 'DataGeracao': '2019-04-13T22:50:44', 'LinhaId': 1}, {'Nome': 'VERDE', 'Status': 'Operação Normal', 'Tipo': 'M', 'Descricao': '', 'DataGeracao': '2019-04-13T22:50:44', 'LinhaId': 2}, {'Nome': 'VERMELHA', 'Status': 'Operação Normal', 'Tipo': 'M', 'Descricao': '', 'DataGeracao': '2019-04-13T22:50:44', 'LinhaId': 3}, {'Nome': 'AMARELA', 'Status': 'Operação Normal', 'Tipo': '4', 'Descricao': '', 'DataGeracao': '2019-04-13T22:50:00', 'LinhaId': 4}, {'Nome': 'LILÁS', 'Status': 'Operação Normal', 'Tipo': 'M', 'Descricao': '', 'DataGeracao': '2019-04-13T22:50:44', 'LinhaId': 5}, {'Nome': 'RUBI', 'Status': 'Operação Normal', 'Tipo': 'C', 'Descricao': '', 'DataGeracao': '2019-04-13T22:50:43', 'LinhaId': 7}, {'Nome': 'DIAMANTE', 'Status': 'Velocidade Reduzida', 'Tipo': 'C', 'Descricao': 'Por motivo de Serviços Programados , os trens da Linha 8 - Diamante estão circulando com intervalos maiores entre as Estações Júlio Prestes e Itapevi .', 'DataGeracao': '2019-04-13T22:50:43', 'LinhaId': 8}, {'Nome': 'ESMERALDA', 'Status': 'Velocidade Reduzida', 'Tipo': 'C', 'Descricao': 'Por motivo de Obras de Modernização , os trens da Linha 9 - Esmeralda estão circulando com intervalos maiores entre as Estações Osasco e Grajaú .', 'DataGeracao': '2019-04-13T22:50:43', 'LinhaId': 9}, {'Nome': 'TURQUESA', 'Status': 'Operação Normal', 'Tipo': 'C', 'Descricao': '', 'DataGeracao': '2019-04-13T22:50:43', 'LinhaId': 10}, {'Nome': 'CORAL', 'Status': 'Operação Normal', 'Tipo': 'C', 'Descricao': '', 'DataGeracao': '2019-04-13T22:50:43', 'LinhaId': 11}, {'Nome': 'SAFIRA', 'Status': 'Velocidade Reduzida', 'Tipo': 'C', 'Descricao': 'Por motivo de Obras de Modernização , os trens da Linha 12 - Safira estão circulando com intervalos maiores entre as Estações Brás e Calmon Viana .', 'DataGeracao': '2019-04-13T22:50:43', 'LinhaId': 12}]