python - ejemplos - ¿Qué debo usar en lugar de urlopen en urllib3
django (3)
La nueva biblioteca urllib3 tiene una buena documentación here
Para obtener el resultado deseado debes seguir eso:
Import urllib3
from bs4 import BeautifulSoup
url = ''http://www.thefamouspeople.com/singers.php''
http = urllib3.PoolManager()
response = http.request(''GET'', url)
soup = BeautifulSoup(response.data.decode(''utf-8''))
La parte "decodificar utf-8" es opcional. Funcionó sin él cuando lo intenté, pero publiqué la opción de todos modos.
Fuente: Guía del usuario
Quería escribir un código como antes ... así:
from bs4 import BeautifulSoup
import urllib2
url = ''http://www.thefamouspeople.com/singers.php''
html = urllib2.urlopen(url)
soup = BeautifulSoup(html)
Pero encontré que tengo que instalar urllib3 ahora.
Pero puede encontrar cualquier tutorial o ejemplo para entender cómo reescribir el código anterior, por ejemplo, urllib3 no tiene urlopen.
¿Alguna explicación o ejemplo por favor?
Estoy usando python 3.4.
urllib3 es una biblioteca diferente de urllib y urllib2. Tiene muchas características adicionales para las urllibs en la biblioteca estándar, si las necesita, cosas como reutilizar las conexiones. La documentación está aquí: https://urllib3.readthedocs.org/
Si desea utilizar urllib3, deberá pip install urllib3
. Un ejemplo básico se ve así:
from bs4 import BeautifulSoup
import urllib3
http = urllib3.PoolManager()
url = ''http://www.thefamouspeople.com/singers.php''
response = http.request(''GET'', url)
soup = BeautifulSoup(response.data)
No tienes que instalar urllib3
. Puede elegir cualquier biblioteca de creación de solicitudes HTTP que se ajuste a sus necesidades y alimentar la respuesta a BeautifulSoup
. Sin embargo, la elección es generalmente debido al rico conjunto de características y la conveniente API. Puede instalar requests
ingresando pip install requests
en la línea de comandos. Aquí hay un ejemplo básico:
from bs4 import BeautifulSoup
import requests
url = "url"
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")