BeautifulSoup требует, чтобы html-анализатор и html-текст передавались как атрибуты. Технически, вам нужно создать экземпляр BeautifulSoup. Если вы не передадите html-текст, искать будет нечего.
Таким образом, строка soup = BeautifulSoup
должна выглядеть примерно так:
soup = BeautifulSoup(data, 'html.parser')
, где первый параметр, в данном случае data
относится к необработанному html-тексту, а второй параметр - анализатор, html.parser
. Я использую HTML-парсер Python по умолчанию, но Python поддерживает другие парсеры в стороне. Узнайте больше здесь: https://www.crummy.com/software/BeautifulSoup/bs4/doc/.
РЕКОМЕНДУЕМЫЙ КОД:
from bs4 import BeautifulSoup, SoupStrainer
import requests
url = "https://www150.statcan.gc.ca/t1/tbl1/en/tv.action?pid=3210001601"
page = requests.get(url)
data = page.text
soup = BeautifulSoup(data, 'html.parser')
text = soup.find_all('h1')
print(text)
Выход:
[]
Похоже, BeautifulSoup не нашел тега h1
.
Поэкспериментируем с meta
тегами:
meta_tags = soup.find_all('meta')
print(meta_tags)
Вывод:
[<meta content="no-cache" http-equiv="Pragma"/>,
<meta content="-1" http-equiv="Expires"/>,
<meta content="no-cache" http-equiv="CacheControl"/>]