Python 3 Obtener la página HTTP

¿Cómo puedo obtener python para obtener el contenido de una página HTTP? Hasta ahora todo lo que tengo es la solicitud y he importado http.client.

Usar urllib.request es probablemente la forma más fácil de hacer esto:

 import urllib.request f = urllib.request.urlopen("http://stackoverflow.com") print(f.read()) 

Uso de módulo incorporado “http.client”

 import http.client connection = http.client.HTTPSConnection("api.bitbucket.org", timeout=2) connection.request('GET', '/2.0/repositories') response = connection.getresponse() print('{} {} - a response on a GET request by using "http.client"'.format(response.status, response.reason)) content = response.read().decode('utf-8') print(content[:100], '...') 

Resultado:

200 OK – una respuesta en una solicitud GET usando “http.client” {“pagelen”: 10, “valores”: [{“scm”: “hg”, “website”: “”, “has_wiki”: true, “nombre”: “tweakmsg”, “enlaces …

Uso de la biblioteca de terceros “solicitudes”

 response = requests.get("https://api.bitbucket.org/2.0/repositories") print('{} {} - a response on a GET request by using "requests"'.format(response.status_code, response.reason)) content = response.content.decode('utf-8') print(content[:100], '...') 

Resultado:

200 OK – una respuesta en una solicitud GET usando “http.client” {“pagelen”: 10, “valores”: [{“scm”: “hg”, “website”: “”, “has_wiki”: true, “nombre”: “tweakmsg”, “enlaces …

Uso de módulo incorporado “urllib.request”

 response = urllib.request.urlopen("https://api.bitbucket.org/2.0/repositories") print('{} {} - a response on a GET request by using "urllib.request"'.format(response.status, response.reason)) content = response.read().decode('utf-8') print(content[:100], '...') 

Resultado:

200 OK – una respuesta en una solicitud GET usando “http.client” {“pagelen”: 10, “valores”: [{“scm”: “hg”, “website”: “”, “has_wiki”: true, “nombre”: “tweakmsg”, “enlaces …

Notas:

  1. Python 3.4
  2. El resultado de las respuestas probablemente será diferente solo contenido

También puede utilizar la biblioteca de solicitudes. Encontré esto particularmente útil porque era más fácil recuperar y mostrar el encabezado HTTP.

 import requests source = 'http://www.pythonlearn.com/code/intro-short.txt' r = requests.get(source) print('Display actual page\n') for line in r: print (line.strip()) print('\nDisplay all headers\n') print(r.headers) 

Agregue este código que puede formatear datos para la lectura humana:

 text = f.read().decode('utf-8') 

https://stackoverflow.com/a/41862742/8501970 Comprueba esto en su lugar. Se trata del mismo problema que tiene y este es muy simple y muy pocas líneas de códigos. Esto me ayudó cuando me di cuenta de que python3 no puede usar simplemente get_page.

Esta es una buena alternativa. (Espero que esto ayude, salud!)

solicitudes de instalación de pip

 import requests r = requests.get('https://api.spotify.com/v1/search?type=artist&q=beyonce') r.json()