#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>,...]