¿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.Python 3 Obtener página HTTP
Respuesta
usando urllib.request
es probablemente la forma más sencilla de hacerlo:
import urllib.request
f = urllib.request.urlopen("http://stackoverflow.com")
print(f.read())
añadir este código que puede formatear los datos para la lectura humana:
text = f.read().decode('utf-8')
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)
¿Es este Python 3? –
¿Esto funcionará para Python 3? –
Uso integrado en el módulo "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 - a response on a GET request by using "http.client" {"pagelen": 10, "values": [{"scm": "hg", "website": "", "has_wiki": true, "name": "tweakmsg", "links ...
uso de la biblioteca de terceros "peticiones"
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 - a response on a GET request by using "http.client" {"pagelen": 10, "values": [{"scm": "hg", "website": "", "has_wiki": true, "name": "tweakmsg", "links ...
Uso integrado en el módulo "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 - a response on a GET request by using "http.client" {"pagelen": 10, "values": [{"scm": "hg", "website": "", "has_wiki": true, "name": "tweakmsg", "links ...
Notas:
- Python 3.4
- resultado de las respuestas más probable que se diferencian sólo el contenido
https://stackoverflow.com/a/41862742/8501970 mira esto en su lugar. Es sobre el 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!)
- 1. Python 3 - urllib, HTTP Error 407: Autentificación de poder
- 2. Obtener argumentos HTTP GET en Python
- 3. Obtener página generada con Javascript en Python
- 4. Python 2 vs. Python 3 - formatos urllib
- 5. Obtener contenido de la página de Apache Commons Solicitud HTTP
- 6. Python - Virtualenv, python 3?
- 7. ¿Admite PySide Python 3?
- 8. URL con Python 3
- 9. paginará Rails 3 por Página
- 10. ¿Cómo puedo hacer una solicitud http sin obtener una respuesta http en Python?
- 11. Serpiente HTTP python seriamente simple?
- 12. Autenticación HTTP básica, usando python
- 13. autenticación http en idee and rails 3
- 14. HEAD Solicitudes HTTP en Rails 3
- 15. Configurar encabezados http RSpec 2.4/Rails 3
- 16. Obtener URL de la página usando javascript
- 17. Python 3 setuptools en mac
- 18. Python 3 string.join() equivalente?
- 19. Python 3 hosting
- 20. Python en OpenOffice 3
- 21. Python 3 Sintaxis Cambios
- 22. python 3 en emacs
- 23. Python 3 con Emacs
- 24. Ajax usando https en una página http
- 25. Redirección permanente de http a https página
- 26. Obtener HTTP Referrer en Redirección
- 27. no se puede obtener el código de respuesta HTTP/encabezados en actionscript 3?
- 28. Python: Obtenga los encabezados HTTP de la llamada urllib2.urlopen?
- 29. Python 2 y Python 3 __cmp__
- 30. Python 2.7 o Python 3 (por velocidad)?
Intenté eso y obtuve el objeto "AttributeError: 'module' no tiene ningún atributo 'urlopen'" – BiscottiGummyBears
En realidad, el módulo correcto para importar es urllib2. –
Lo siento, me di cuenta de que estaba usando Python 3. He actualizado mi ejemplo para que coincida. –