2016-10-28 2 views
0

Zum Lernen POST parmaeter Urllib, versuche ich Tabellenwerte für ein bestimmtes Datum in den folgenden Code in den Parametern eingegeben. Es gibt jedoch nicht die Werte für den 12. September zurück, sondern die Antwort zeigt das Datum ist der 12. Oktober.Python Urlib POST-Antwort ruft nicht die richtigen Werte

Mit POSTMAN wird die Antwort für das richtige Datum zurückgegeben, aber mit Python kann ich keine Werte für andere als aktuellen Monat erhalten. Irgendeine Erklärung zu was könnte das verursachen? Jede Hilfe/Anregung wird geschätzt.

import urllib 
import urllib2 


url = '' 

data = urllib.urlencode({'priceDate.month' : '09', 'priceDate.date' : '12','priceDate.year':'2016','submit':'Show Prices'}) 
req = urllib2.Request(url, data) 

response = urllib2.urlopen(req) 

d = response.read() 

print d 
+0

Warum verwenden Sie beide urllib und urllib2? –

+0

@ChrisKenyon Laut Dokumentation muss ich POST-Parameter (urllib.urlencode) kodieren und es ist mit Urllib-Bibliothek möglich. urllib2 soll die POST-Anfrage senden. Also werden beide Bibliotheken benötigt. – Naval

+0

Vielleicht ist es eine Null-basierten Array für den Monat verwenden (d. H. Monate sind '00' bis '11')? Versuchen Sie, '08' zu übermitteln. –

Antwort

0

Verwenden Sie einfach requests Modul.

import requests as re 
url = "https://www.treasurydirect.gov/GA-FI/FedInvest/selectSecurityPriceDate.htm" 
parms = {'priceDate.month':'09','priceDate.day':'12','priceDate.year':'2016','submit':'CSV+Format'} 
resp = re.post(url, parms) 
resp.content 
+0

Danke für den Vorschlag. Aber ich hoffte, die Seite zusammen mit den HTML-Tags abrufen. Ist es möglich mit dem Requests-Modul? – Naval

+0

Nur den Submit-Parameter zu Preise anzeigen geändert und es hat funktioniert Vielen Dank! – Naval

+0

Immer noch neugierig, warum die Urllib nicht die gleiche Seite als Anfragen Modul abrufen würde? – Naval

Verwandte Themen