Как мне использовать онлайн-источник страницы с BeautifulSoup?

#python

#python

Вопрос:

На самом деле я запустил Python неделю назад, но мне отчаянно нужно завершить этот проект, поскольку это поможет упростить работу в офисе.

У меня есть код, который выглядит следующим образом:

 from bs4 import BeautifulSoup
import re
html_doc ="""


"""
soup = BeautifulSoup(html_doc, 'html.parser')
dev = soup.find_all('span', {'class': 'title'})
 

Он выполняет свою работу до тех пор, пока я вставляю исходный код страницы внутрь

 html_doc="""

""""
 

Чем мне его заменить, чтобы вместо этого я мог использовать ссылку?

Я знаю, что URLLIB2-3 может выполнить эту работу, но мне трудно это понять, пожалуйста, помогите

Комментарии:

1. Знаете ли вы, как работает всемирная паутина? Я имею в виду на очень высоком уровне. Если нет, вам нужно будет узнать о модели запроса / ответа. Это поможет сделать использование urllib понятным. Вы также можете рассмотреть возможность использования requests вместо.

2. Следует помнить одну вещь: urllib ни requests один из них не способен обрабатывать динамический контент. Если данные на странице, которую вы очищаете, вообще изменены JavaScript при запуске в браузере, тогда вам нужно будет найти другое решение, например selenium .

Ответ №1:

Как уже упоминалось, вы могли бы взглянуть на requests него, он сопоставим urllib и будет работать в целом так же, как показано в примере.

Очень простой пример (запросы)

Это запросит URL-адрес и получит некоторый контент в качестве ответа — этот контент может быть обработан с помощью beautifulsoup и предоставит вам список <a> всех <h3> :

 import requests
from bs4 import BeautifulSoup
url = 'https://www.imdb.com/search/title/?genres=action'

page = requests.get(url)
soup = BeautifulSoup(page.text, 'html.parser')

soup.select('h3 a')
 

Пример urllib

 import urllib.request
from bs4 import BeautifulSoup

page = urllib.request.urlopen('https://www.imdb.com/search/title/?genres=action').read()
soup = BeautifulSoup(page, 'html.parser')

soup.select('h3 a')
 

Вывод

 [<a href="/title/tt7462410/">Das Rad der Zeit</a>,
 <a href="/title/tt11126994/">Arcane</a>,
 <a href="/title/tt10160804/">Hawkeye</a>,
 <a href="/title/tt1267295/">Cowboy Bebop</a>,
 <a href="/title/tt7991608/">Red Notice</a>,...]