2016-04-22 12 views
0

私の会社のインターネットを使用しています。私はデータを取り出すためにウェブページにアクセスする必要があります。私はPython Requestsモジュールを使用しています。私がアクセスする必要があるページは、POSTリクエストによって行われます。私の会社はプロキシを持っています。私は、requests.post()のプロキシーフラグを使ってプロキシを経由することができます。しかし、クッキーを使用する認証部分があり、それを通過することはできません。 POSTリクエストを使用する際に認証部分をどのように行う必要がありますか?Python POST呼び出しのプロキシによる認証を要求します

私はこのスレッドで説明したように、認証プロセスを使用しようとしていますが、それは働いていない: Authentication and python Requests

をコードはこのように設定されています

import ssl 
from MyHtmlParser import MyHTMLParser 
from lxml import html 
import requests 
from bs4 import BeautifulSoup as bs 

def authenticate(s, url): 
    headers = {'USER_NAME': 'me', 'PASSWORD': 'mypassword', '_Id': 'submit'} 
    page=s.get(url) 
    soup=bs(page.content) 
    value=soup.form.find_all('input')[2]['value'] 
    headers.update({'value_name':value}) 
    auth = s.post(url, params=headers, cookies=page.cookies) 

post_url_finance = 'https://opsdata<company>com/scripts/finance/finance.exe' 
values_finance = {'EMPLOYEE_TOTAL': 'employeeId'} 

proxies = {'http': 'http://proxy-<company>.com'} 

page = requests.post(post_url_finance, data=values_finance, proxies=proxies) print page.content 

はしかし、私はこれを取得していますエラーバック:

$ python postUsingRequests.py 
Traceback (most recent call last): 
    File "postUsingRequests.py", line 53, in <module> 
    page = requests.post(post_url_finance, data=values_finance, proxies=proxies) 
    File "C:\Python27\lib\site-packages\requests\api.py", line 109, in post 
    return request('post', url, data=data, json=json, **kwargs) 
    File "C:\Python27\lib\site-packages\requests\api.py", line 50, in request 
    response = session.request(method=method, url=url, **kwargs) 
    File "C:\Python27\lib\site-packages\requests\sessions.py", line 465, in request 
    resp = self.send(prep, **send_kwargs) 
    File "C:\Python27\lib\site-packages\requests\sessions.py", line 573, in send 
    r = adapter.send(request, **kwargs) 
    File "C:\Python27\lib\site-packages\requests\adapters.py", line 431, in send 
    raise SSLError(e, request=request) 
requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) 

答えて

0

信頼できないSSL証明書が原因のようです。

最も速い修正は、verify=Falseです。これにより証明書が検証されず、アプリケーションがセキュリティリスクにさらされることに注意してください。しかし、体調が整えば、安全なネットワークで動作しているので、これは深刻な問題ではありません。

+0

私はそれが偽=検証してみました、と私はこの背中を取得しています:$パイソンpostUsingRequests.py <応答[200]> <応答[200]> <応答[200]> C:\ Python27 \ lib \ site-packages \ urllib3 \ connectionpool.py:768:InsecureRequestWarning:未確認のHTTPS要求が行われています。証明書の検証を追加することを強くお勧めします。以下を参照してください:https://urllib3.readthedocs.org/en/latest/security.html InsecureRequestWarning) – mjpablo23

+0

私は、ページが傷ついているページがあることを期待しています。それは私がそのページに連れていかないことを意味しますか? – mjpablo23

+0

私は認証を通過しないと、それは私にテーブルを表示していないようです。 – mjpablo23

0
s = requests.session() 
s.auth = {'USER_NAME': '----', 'PASSWORD': '----'} 
pageCert = requests.post(post_url_finance, proxies=proxies, verify=False) 

verify = falseのs.authを使用しました。これは私にSSLエラーを与える代わりに私に応答を返しました。

関連する問題