2017-09-26 104 views
0

我正在尝试从HTTPS位置使用SSL读取XML文件到熊猫数据框中。我发现了一些示例代码,但无法使其工作。我该怎么去做呢?使用SSL从HTTPS读取文件到熊猫数据框

import requests 
urllink='https://www.oasis.oati.com/woa/docs/MISO/MISODocs/CurrentData/2308_Planned_Outages_2017-09-19-18-50-00.xml' 

cCert = r'C:/Temp/MISOcert.pfx' 
requests.get(urllink, cert=cCert) 

如果我将XML文件放在本地,我能够将XML文件读入数据框。为此,我使用xml.etree.ElementTree。

但我希望能够直接使用证书认证并将XML读入数据框。

+0

你想验证客户端吗? cert arg用于客户端,并接受字符串'(cert,key)'的元组,使用verify作为服务器端并且是单个字符串。 – T4rk1n

回答

0

我并不真的建议使用verify = False作为requests.get调用,但下面的方法适用于我。它拉取数据并构建xml文档。不过,您可以将其加载到数据帧中。

import requests 
import xml.etree.ElementTree as ET 


def get_data(url): 
    response = requests.get(urllink, verify=False) 
    return ET.fromstring(response.text) 

if __name__ == '__main__': 
    url = 'https://www.oasis.oati.com/woa/docs/MISO/MISODocs/CurrentData/2308_Planned_Outages_2017-09-19-18-50-00.xml' 
    xml_document = get_data(url) 
+0

这很好用。你不推荐使用verify = false。那么你会如何建议用True来进行呢?此外,一个天真的问题:__name__ =='__main__':这是做什么? –