响应Python请求

2024-09-30 05:29:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图用Python刮去那个网页。 这里是网站:https://portal.cfm.org.br/busca-medicos/

一旦用户填写任何选项医生姓名(Nome do médico)、状态(UF)、医生身份(CRM)和其他选项,甚至单击按钮搜索(Buscar)并发出请求,以下是我试图获取的响应和信息:

Aarao Andrade Napoleao Lima
CRM: 194528-SP
Data de Inscrição: 06/03/2018
Primeira inscrição na UF: 06/03/2018
Inscrição: Principal
Situação: Regular
Inscrições em outro estado: PI/6943 (Transferido)
Especialidades/Áreas de Atuação:
DERMATOLOGIA - RQE Nº: 91483
Endereço: Exibição não autorizada pelo médico.
Telefone: Exibição não autorizada pelo médico.

例如,下面的URL返回除专业化之外的一些医生信息:

https://portal.cfm.org.br/api_rest_php/api/v1/medicos/buscar_foto/100/AL

数字100是唯一的医生身份证,这是一个序列号。“AL”是医生注册的州

因此,医生专业化来自该URL:

https://portal.cfm.org.br/api_rest_php/api/v1/medicos/listar_especialidades

专门化URL的返回是全部专门化。据我所知,JavaScpric在HTML页面中处理医生和他的专业之间的关系。或者我可能错了

然而,过了一会儿,我写了下面的代码来获取这些信息:

import simplejson as json
import requests

data ={"captcha":"03AGdBq26w_DFk3EDWKK7UeflMOfjABfIijncuV3lKsyPuE3uCObVS3Dh0t9kgUSW1xx48PPoXuonGdwZEon9HnaBAWaqft7ZnIX6dCVhI0HP_z9F6rlAw5JHoBzveqqInngxE7lEM4sSYKgKOsj3k57mzNME7dLeYDzMr18-CIr23RIiVx32QaGiC7Ti2KwccC-NlM6yejbrSTM49_oQ4UjQvUY3ylu00canEORjWQLFJRXScgSVPTwMIL3agpYhAZ45EbdVGngMRg8tfTUqmptJtFXgazefYkf_TMJi9Sjcxtm-TK3I-pBTJxsYyuI-pKK0DozwDhweJpMBTfqjcLwnx0BrdGL7DWaTJQP-6PR8Wc1kybg8HUoUcN73mG2vfhL7Xd731lK74H13NTQbZ7xW6Hj5NfsUHt90hTjhsmhuc4-qdfFHsdtRNdxrn4AGJ75-5UMJZAeaJ","medico":{"nome":"","ufMedico":"SP","crmMedico":"194528","municipioMedico":"","tipoInscricaoMedico":"","situacaoMedico":"","detalheSituacaoMedico":"","especialidadeMedico":"","areaAtuacaoMedico":""},"page":1,"pageNumber":1,"pageSize":10}
json_string = json.dumps(data, iterable_as_array=True)

url= "https://portal.cfm.org.br/api_rest_php/api/v1/medicos/buscar_medicos"
headers = {}
r = requests.post(url, data=json_string, headers=headers)

r.text

结果,我得到了这样的结果,“call_user_func_array()希望参数2是 数组,对象以“:”形式给出:

   '<br />\n<b>Warning</b>:  call_user_func_array() expects parameter 2 to be 
    array, object given in 
    <b>/var/www/html/portalmedico/api_rest_php/api/v1/index.php</b> on line 
    <b>37</b><br />\n{"status":"sucesso","dados":null}'

我相信我做错了什么。我对这个要求不太熟悉

有人能帮我吗

或者尝试用硒来制作这个网页,Scrapy会更好吗

我对这个冗长的问题表示诚挚的歉意


Tags: httpsorgbrrestapi信息jsonarray

热门问题