Регулярное выражение для получения значения между тегами в html или любые значения между двумя ограничителями

Автор: Igor Kirsanov

Для примера возьмем статистику лайвинтернет доступную в текстовом виде и попробуем получить только данные.
В качестве источника используем статистику liveinternet. В примере указаны тестовые значения с реальной структурой данных.
Алгоритм разбора:

  1. Получаем данные о сайте, в примере они уже "зашиты" в код
  2. Разбираем данные регулярным выражением, левый ограничитель знак равно и пробел, правый точка с запятой
  3. Отображаем полученные данные

Пример разбора текстовой строки регулярным выражением для liveinternet


#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
data = '''LI_site = 'программисту.рф';
LI_month_hit = 4866;
LI_month_vis = 1977;
LI_week_hit = 1189;
LI_week_vis = 501;
LI_day_hit = 134;
LI_day_vis = 45;
LI_today_hit = 82;
LI_today_vis = 31;
LI_online_hit = 18;
LI_online_vis = 3;'''
a = re.findall(r'= (.*?);', data, re.DOTALL)
for i in a:
	print i.decode('utf-8')
В результате выполнения данного скрипта получаем значения которые можно использовать например для отслеживания и автоматического сравнения посещаемости на большом количестве сайтов

Другой короткий пример регулярного выражения для получения значения между тегами в html.
Например получим все значения слов внутри тега b


import re
data = '<b>12345</b><strong>56789</strong><b>010101</b>'
print re.findall(r'<b>(.*?)</b>', data, re.DOTALL)