Porównaj ceny domen i usług IT, sprzedawców z całego świata

Jak wysłać internetowe żądanie pobierania HTTP w języku Python?


Mam problem z wysłaniem danych do witryny internetowej i uzyskaniem odpowiedzi w języku Python. Widziałem podobne pytania, ale wydaje się, że żadne z nich nie osiągnęło tego, do czego dążę.
To jest mój kod C #, który próbuję przenieść na Python:
static void Request(Uri selectedUri)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(selectedUri);
request.ServicePoint.BindIPEndPointDelegate = BindIPEndPointCallback;
request.Method = "GET";
request.Timeout = (int)Timeout.TotalMilliseconds;
request.ReadWriteTimeout = (int)Timeout.TotalMilliseconds;
request.CachePolicy = CachePolicy;
request.UserAgent = UserAgent; using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
using (StreamReader responseReader = new StreamReader(response.GetResponseStream()))
{
string responseText = responseReader.ReadToEnd();
File.WriteAllText(UrlFileName, responseText.Trim(), Encoding.ASCII);
}
}
}

Oto moja próba w Pythonie roku:
def request():
web = httplib.HTTPConnection('https://someurl.com');
headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
web.request("GET", "/heartbeat.jsp", headers);
response = web.getresponse();
stream = ""; #something is wrong here

Każda pomoc byłaby bardzo mile widziana!
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

możesz użyć

urllib2
http://docs.python.org/2/library/urllib2.html
import urllib2
content = urllib2.urlopen(some_url).read()
print content

Możesz również użyć

httplib
http://docs.python.org/2.6/library/httplib.html
import httplib
conn = httplib.HTTPConnection("www.python.org")
conn.request("HEAD","/index.html")
res = conn.getresponse()
print res.status, res.reason
# Result:
200 OK

lub

biblioteka zapytań
http://docs.python-requests.org/en/latest/
import requests
r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
r.status_code
# Result:
200
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

W Pythonie możesz użyć
urllib2
(

http://docs.python.org/2/library/urllib2.html
http://docs.python.org/2/library/urllib2.html), aby wykonać całą tę pracę za Ciebie.
Wystarczająco proste:
import urllib2
f = urllib2.urlopen(url)
print f.read()

Spowoduje to wydrukowanie otrzymanej odpowiedzi HTTP.
Funkcja
urllib.urlencode ()
może służyć do przekazywania parametrów GET/POST. Więcej informacji można znaleźć pod adresem

oficjalny samouczek Urllib2
http://docs.python.org/2/howto/urllib2.html

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się