qu'est-ce que je dois utiliser à la place d'urlopen dans urllib3

je voulais écrire un code comme avant... comme ceci:

from bs4 import BeautifulSoup
import urllib2

url = 'http://www.thefamouspeople.com/singers.php'
html = urllib2.urlopen(url)
soup = BeautifulSoup(html)

Mais j'ai trouvé que je dois installer urllib3 maintenant.

mais coudntfind n'importe quel tutoriel ou exemple pour comprendre comment réécrire le code ci-dessus, par exemple, urllib3 n'a pas urlopen.

Aucune explication ou un exemple s'il vous plaît?!

j'utilise python 3.4.

30
demandé sur niloofar 2016-04-09 14:33:15

3 réponses

urllib3 est une bibliothèque différente de urllib et urllib2. Il a beaucoup de fonctionnalités supplémentaires aux urllibs dans la bibliothèque standard, si vous en avez besoin, des choses comme réutiliser les connexions. La documentation est ici: https://urllib3.readthedocs.org/

Si vous souhaitez utiliser urllib3, vous aurez besoin de pip install urllib3. Un exemple de base ressemble à ceci:

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)
22
répondu shazow 2017-02-12 17:58:59

Vous n'avez pas à installer urllib3. Vous pouvez choisir n'importe quelle bibliothèque HTTP-request-making qui correspond à vos besoins et alimenter la réponse à BeautifulSoup. Le choix est cependant habituellement requests en raison de la richesse des fonctionnalités et de L'API pratique. Vous pouvez installer requests en entrant pip install requests en ligne de commande. Voici un exemple de base:

from bs4 import BeautifulSoup
import requests

url = "url"
response = requests.get(url)

soup = BeautifulSoup(response.content, "html.parser")
12
répondu alecxe 2018-02-10 14:50:04

le nouveau urllib3 la bibliothèque a une belle documentation ici

Afin d'obtenir le résultat souhaité, vous devrait suivre:

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 partie" decode utf-8 " est optionnelle. Ça marchait sans ça quand j'ai essayé, mais j'ai posté l'option quand même.

Source: Guide De L'Utilisateur

2
répondu Lan Vukušič 2017-11-07 13:57:57