Библиотека, известная как Beautifulsoup. Используя эту библиотеку, мы можем искать значения тегов html и получать конкретные данные, такие как заголовок страницы и список заголовков на странице.
Установить Beautifulsoup
Используйте менеджер пакетов Anaconda для установки необходимого пакета и зависимых от него пакетов.
conda install Beaustifulsoap
Чтение HTML-файла
В приведенном ниже примере мы делаем запрос к URL-адресу для загрузки в среду Python. Затем используйте параметр парсера html, чтобы прочитать весь файл html. Далее мы печатаем первые несколько строк html-страницы.
import urllib2
from bs4 import BeautifulSoup
# Fetch the html file
response = urllib2.urlopen('http://tutorialspoint.com/python/python_overview.htm')
html_doc = response.read()
# Parse the html file
soup = BeautifulSoup(html_doc, 'html.parser')
# Format the parsed html file
strhtm = soup.prettify()
# Print the first few characters
print (strhtm[:225])
Когда мы выполняем приведенный выше код, он дает следующий результат.
<!DOCTYPE html> <!--[if IE 8]><html class="ie ie8"> <![endif]--> <!--[if IE 9]><html class="ie ie9"> <![endif]--> <!--[if gt IE 9]><!--> <html> <!--<![endif]--> <head> <!-- Basic --> <meta charset="utf-8"/> <title>
Извлечение значения тега
Мы можем извлечь значение тега из первого экземпляра тега, используя следующий код.
импорт urllib2 из bs4 импортировать BeautifulSoup response = urllib2.urlopen ('http://tutorialspoint.com/python/python_overview.htm') html_doc = response.read () soup = BeautifulSoup (html_doc, 'html.parser') печать (sou.title) печать (soup.title.string) печать (soup.a.string) печать (soup.b.string)
Когда мы выполняем приведенный выше код, он дает следующий результат.
Python Overview Python Overview None Python is Interpreted
Извлечение всех тегов
Мы можем извлечь значение тега из всех экземпляров тега, используя следующий код.
import urllib2
from bs4 import BeautifulSoup
response = urllib2.urlopen('http://tutorialspoint.com/python/python_overview.htm')
html_doc = response.read()
soup = BeautifulSoup(html_doc, 'html.parser')
for x in soup.find_all('b'): print(x.string)
Когда мы выполняем приведенный выше код, он дает следующий результат.