Подтвердить что ты не робот

Что я должен использовать, чтобы открыть URL вместо urlopen в urllib3

Я хотел написать кусок кода, подобный следующему:

from bs4 import BeautifulSoup
import urllib2

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

Но я обнаружил, что теперь мне нужно установить пакет urllib3.

Более того, я не смог найти учебник или пример, чтобы понять, как переписать приведенный выше код, например, urllib3 не имеет urlopen.

Любое объяснение или пример, пожалуйста?!

P/S: я использую Python 3.4.

4b9b3361

Ответ 1

urllib3 - это другая библиотека от urllib и urllib2. У него есть много дополнительных возможностей для urllibs в стандартной библиотеке, если они вам нужны, такие вещи, как повторное использование соединений. Документация находится здесь: https://urllib3.readthedocs.org/

Если вы хотите использовать urllib3, вам нужно pip install urllib3. Основной пример выглядит следующим образом:

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)

Ответ 2

Вам не нужно устанавливать urllib3. Вы можете выбрать любую библиотеку создания HTTP-запросов, которая соответствует вашим потребностям, и направить ответ на BeautifulSoup. Выбор, хотя обычно requests из-за богатый набор функций и удобный API. Вы можете установить requests, введя pip install requests в командной строке. Вот основной пример:

from bs4 import BeautifulSoup
import requests

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

soup = BeautifulSoup(response.content, "html.parser")

Ответ 3

В новой библиотеке urllib3 имеется хорошая документация здесь
Чтобы получить желаемый результат, вы должны следовать этому:

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'))

Часть "decode utf-8" является необязательной. Он работал без него, когда я пытался, но я все равно разместил вариант.
Источник: Руководство пользователя