Библиотека, известная как 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)
Когда мы выполняем приведенный выше код, он дает следующий результат.