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>
Извлечение значения тега
Мы можем извлечь значение тега из первого экземпляра тега, используя следующий код.
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')
print (soup.title)
print(soup.title.string)
print(soup.a.string)
print(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)
Когда мы выполняем приведенный выше код, он дает следующий результат.
Python is Interpreted
Python is Interactive
Python is Object-Oriented
Python is a Beginner's Language
Easy-to-learn
Easy-to-read
Easy-to-maintain
A broad standard library
Interactive Mode
Portable
Extendable
Databases
GUI Programming
Scalable