Учебники

Python — чтение HTML-страниц

Библиотека, известная как 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)

Когда мы выполняем приведенный выше код, он дает следующий результат.