0

ich unter der folgenden URL (intern zu meiner Firma kann so nicht von außen zugegriffen werden kann) einen POST-Aufruf an ein Skript mache: https://opsdata.mycompany.com/scripts/finance/finance.exePOST-Aufruf mit Authentifizierung gleicher URL, mit Python Requests

Die Anfänge site ist eine html-Seite, die Textfelder enthält, in die Sie Daten eingeben können, und eine Post-Aktion für die obige URL. Es wird jedoch auf eine Anmeldeseite umgeleitet, die sich ebenfalls in der obigen URL befindet und Textfelder für einen Benutzernamen und ein Kennwort enthält. Ich lege Daten zur Login-Seite mit dem folgenden Code:

post_url_finance = 'https://opsdata.*****.com/scripts/finance/finance.exe' 
s = requests.session() 
s.auth = {'USER_NAME': '*****', 'PASSWORD': '*****'} 
proxies = {'http': 'http://proxy-***.****.com'} 

die Authentifizierung zu tun, ich bin mit:

pageCert = requests.post(post_url_finance, proxies=proxies, verify=False) 

Das gibt mir eine Antwort:

<Response [200]> 
C:\Python27\lib\site-packages\urllib3\connectionpool.py:768: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html 
    InsecureRequestWarning) 

jedoch Ich muss die Daten, nach denen ich suche, mit dieser Information senden:

values_finance = {'EMPLOYEE_TOTAL': '-----'} 

wenn ich mache die Post ein zweites Mal anrufen mit:

page = requests.post(post_url_finance, data=values_finance, proxies=proxies, verify=False) 

ich die gleiche Antwort bin immer wieder.

<Response [200]> 

Wie mache ich den zweiten Anruf an Post abrufen die Daten, die ich will?

Antwort

0

alle status_code=200 Mittel ist, dass die Website eine Menge Zeiten Websites ihre ungültige Anmeldeseiten oder Fehlerseiten bei pageCert.content aussehen müssen nicht „erfolgreich eine Seite gerendert“ machen Rückkehr alles andere

Sie .... ich nicht denken Sie tatsächlich der Anmeldung sind (vielleicht sind Sie) ... auf dem zweiten Anruf benötigen Sie Sie

page = s.post(url,...) 

zu api Daten zu erhalten * wahrscheinlich json

page_data = s.post(url,...).json() 
verwenden möchten tun
0

erste Mal, dass ich diese Sache sehen, aber docs gab mir einige Hinweise ... Sieht aus wie Sie gerade die Antwort ausdrucken, aber nicht die Daten, die ein Beispiel haben:

r = requests.get('https://www.google.com') 
print(r) 
# <response 200> 
# Now if I write the text: 
print(r.text) 
# A lot of html comes out 

Wie @Joran Beasley sagt, Sie Möglicherweise müssen Sie einfach print(r.json) verwenden, um zu sehen, was Sie brauchen. Im Idealfall ist es eine gute Sache, einen 200-Response-Code zu erhalten, andernfalls würde ein 401/403-Fehler auftreten, wenn die Authentifizierung fehlgeschlagen ist.

Die Ausnahme hat mehr mit der Authentizität der Zertifikate auf dem mycompany.com-Ende zu tun, was Sie in den urlllib3-Dokumenten lesen können.