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.
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)
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")
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