2017-09-28 1 views
0

나는 두 세트의 코드를 나열했습니다 - 작동하지 않는 코드 (첫 번째 코드)와 다른 코드 (두 번째 코드)가 있습니다. 질문은 SSL 인증서를 사용하여 첫 번째 코드를 작동시키는 방법입니다. 확인없이 작동하지 않습니다. 웹 페이지에 액세스하는 데 사용하는 SSL 인증서가 있습니다. 나는 .pfx로 내보냈습니다 (유일한 옵션). 인증서 정보를 사용하여 기본 페이지 (첫 번째 코드)에 액세스하려면 어떻게해야합니까? 이것은 나의 진보와 함께 대단히 도움이 될 것입니다! 감사.파이썬에서 SSL 인증서를 사용하여 보안 웹 사이트에 액세스

요청이있는 기본 페이지 (XMLS 링크가 포함되어 있음)를 누르면 빈 수프가 생깁니다 (soup.title은 비어 있고 다른 수프 기능입니다).

import requests 
import xml.etree.ElementTree as ET 
import pandas as pd 

url = 'https://www.oasis.oati.com/woa/docs/MISO/MISODocs/CurrentData/2308_Planned_Outages_2017-09-19-18-50-00.xml' 
response = requests.get(url, verify=False) 
root=ET.fromstring(response.text) 

all_records = [] #This is our record list which we will convert into a dataframe 
for i, child in enumerate(root): #Begin looping through our root tree 
    record = {} #Place holder for our record 
    for subchild in child: #iterate through the subchildren to user-agent, Ex: ID, String, Description 
     record[subchild.tag] = subchild.text #Extract the text create a new dictionary key, value pair 
     all_records.append(record) #Append this record to all_records 

df = pd.DataFrame(all_records).drop_duplicates().reset_index(drop=True) 

답변

0

당신은해야한다 : 나는 특정 XML 링크로 (아무 검증에) 직접 페이지를 치면

from bs4 import BeautifulSoup 
import requests 

url = 'https://www.oasis.oati.com/cgi-bin/webplus.dll?script=/woa/woa-planned-outages-report.html&Provider=MISO' 
response = requests.get(url, verify=False) 
soup = BeautifulSoup(response.content, "html.parser") 

그러나,이 코드를 사용하여 검색 할 수 있어요 :이 코드입니다 request.get 호출 cert 옵션을 사용

requests.get(url, cert=('/path/client.cert', '/path/client.key'))

당신이 PFX 아카이브에서 인증서를 추출해야 외에 (read this for example)

+0

로마 - .cer (.cert 아님) 파일은 내보낼 수 있지만 키는 내보낼 수 없습니다. 이 예제에서는 .key 파일에 대해 이야기하지 않습니다. 도울 수 있니? –

+0

'requests.get (url, verify = '/ path/to/certfile')'을 시도하십시오. 아마 네가 원하는 걸 오해 했어. –

관련 문제