wie verwenden von Anfragen.post() mit proxy-Authentifizierung in python?

from bs4 import BeautifulSoup
import requests
from requests.auth import HTTPProxyAuth

url = "http://www.transtats.bts.gov/Data_Elements.aspx?Data=2" 
proxies = {"http":"xxx.xxx.x.xxx: port"}
auth = HTTPProxyAuth("username", "password")
r = requests.get(url, proxies=proxies, auth=auth)
soup = BeautifulSoup(r.text,"html.parser") 
viewstate_element = soup.find(id = "__VIEWSTATE").attrs 
viewstate = viewstate_element["value"]
eventvalidation_element = soup.find(id="__EVENTVALIDATION").attrs
eventvalidation = eventvalidation_element["value"]


data =     {'AirportList':"BOS",'CarrierList':"VX",'Submit':'Submit',"__EVENTTARGET":"","__EVENTARGUMENT":"","__EVENTVALIDATION":eventvalidation,"}
r = requests.post(url, proxies, auth, data )
print r

Dieser code funktioniert einwandfrei, wenn ich requests.get(url, proxies=proxies, auth=auth), aber was tun, wenn es gibt einige Daten, die gesendet werden, durch requests.post() unter proxy-Authentifizierung?

  • Welche Probleme sind Sie konfrontiert, während Sie versuchen, zu verwenden requests.post(url, proxies=proxies, auth=auth, data=data)
  • Sind Sie sicher, es ist die proxy-Authentifizierung, das ist das problem hier?
  • Ja, die proxy-Authentifizierung ist das eigentliche Problem hier. @VikasNehaOjha verwenden, das gibt den Fehler "TypeError: post() dauert bei den meisten 3 arguments (4 given)". So kann es nicht verwendet werden, die Art und Weise.
  • Ok. Versuchen Sie, diese - proxies = {'http': 'http://username:password@ip:port', 'https': 'http://username:password@ip:port'} und dann requests.post(url, proxies=proxies, data=data)
  • Es arbeitete. vielen Dank, dass hat wirklich geholfen.
InformationsquelleAutor kenway | 2015-06-07
Schreibe einen Kommentar