2017-09-28 15 views
0

私は2つのコードセットを挙げています - 1つは動作しません(最初は1つ)、もう1つは動作します(2つ目)。質問は、SSL証明書を使用して最初のコードを動作させる方法です。なぜなら、検証なしでは動作しないからです。私はWebページにアクセスするために使用するSSL証明書を持っています。私は.pfxとしてエクスポートされました(これは唯一のオプションです)。メインページ(最初のコード)にアクセスするために証明書の資格情報をどのように使用しますか。これは非常に私の進歩に役立つだろう!ありがとう。PythonでSSL証明書を使用して保護されたWebサイトにアクセスする

メインページ(XMLSリンクが埋め込まれている場所)をリクエストして空白のスープを取得しています(soup.titleは空白なので、他のスープ機能もあります)。これはコードです:私は、特定の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") 

はしかし、私はこのコードを使用して、それを取得することができる午前:

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

あなたはすべきですあなたはPFXアーカイブから証明書を抽出しなければならないほか01(

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

request.getコールでcertオプションを使用します)

+0

ローマ - .cer(.certではなく)ファイルをエクスポートできましたが、キーはエクスポートできませんでした。この例では、.keyファイルについては言及していません。手伝ってくれますか? –

+0

'requests.get(url、verify = '/ path/to/certfile')'を試してください。おそらく私はあなたが望むものを誤解しました。 –

関連する問題