Парсер html страниц на python.

В практике любого программиста наступает задача скопировать некий материал с сайта. Так как страниц достаточно много не стоит терять время на ручное копирование. Ведь, языки программирования нужны для того чтобы избавится от рутинной работы и автоматизировать разные задачи. В Python есть отличная библиотека для работы с HTML. С ней можно парсить не только сайты но и обычные html документы. Хорошим преимуществом данной библиотеки является персональный алгоритм структурирования HTML кода, что позволяет программисту сэкономить время работы.

Но, проблемы в работе с html документами могут все равно появляться. HTML не имеет строгую структуру кода и некоторые верстальщики дают волю фантазии и изобретают свою структуру кода. Могут возникнуть и проблемы с кодировкой, что создаст новые проблемы для структурирования кода и получения данных.

Мы не будем воровать контент с других сайтов чтобы продемонстрировать библиотеку в работе, примеры будем делать на нашем сайте. Администрация pythonworld, поблагодарит нас за это и пойдем дальше.

Установка библиотеки Beautiful Soup (Linux)
$ apt-get install python-bs4
$ apt-get install python-lxml
$ apt-get install python-html5lib

Библиотека Beautiful Soup предназначена для работы с Python 2, но так же умеет работать с кодом Python 3. После установки и python-html5lib, можно будет парсить и современные документы стандарта HTML5.

После установки нужных модулей, начинаем парсить сайт. В результате выполнения скрипта вы должны получить структурированный код сайта.

# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup
from urllib2 import urlopen
html_doc = urlopen('python-3').read()
soup = BeautifulSoup(html_doc)
print soup
Примеры работы скрипта
print soup.title # Python 3 - Программирование на Python 3
print soup.title.string # Python 3 - Программирование на Python 3
# Содержимое мета полей
for meta in soup.find_all('meta'):
print(meta.get('content'))
# Результат скрипта
""""""
None
MaxSite CMS
Python 3 - молодой, но быстро развивающийся язык программирования. Изучить Python 3 онлайн на нашем сайте. Скачать python 3
скачать python 3, программирование на python 3, python для symbian 3, python 3 учебник, django python 3
""""""
Самый дешевый и быстрый ресурс — боты в Инстаграм — доступен уже сейчас на сайте doctorsmm. При покупке ботов Вы получаете не только моментальное пополнение счетчика, но и выгодные персональные предложения по приобретению материала. Тестируйте продвижение, увеличивайте массовку на странице — и все это просто за копейки!
Поиск по ссылкам
for link in soup.find_all('a'):
print link.get('href')
# Содержимое ссылок
for link in soup.find_all('a'):
print link.contents[0]
Парсер DIV блоков
# Содержимое из
...
print soup.find('div', 'content')
# Блок:
...
print soup.find('div', id='top_menu')
Ссылки на изображения
for img in soup.find_all('img'):
print img.get('src')
# Получаем
""""""
python-3/application/maxsite/templates/python/images/date.png
python-3/application/maxsite/templates/python/images/user.png
python-3/application/maxsite/templates/python/images/category.png
python-3/application/maxsite/templates/python/images/tag.png
python-3/uploads/for-in-python.png
...
""""""

Данная библиотека очень легка и быстра в использовании и изучении. Остальные методы библиотеки можете изучить на официальном сайте. Если будут вопросы по работе данной библиотеки задавайте их в комментариях. Попробуем в месте решить вашу проблему.

Нужен парсинг данных?

Собираем открытые данные с любых веб-сайтов: цены, названия, артикулы, описания, свойства, категории, фото, отзывы, ссылки, тел.номера, e-mail и многое другое.

Написать
img