Назад | Перейти на главную страницу

Автоматическое извлечение значений таблиц из веб-страниц HTML

Я использую MRTG для мониторинга использования ЦП / MEM / трафика устройств, и каждое устройство имеет разные порты / vlans / интерфейсы. Когда я хочу создать таблицу / Excel, показывающую статистику всех интерфейсов, я обнаружил, что это очень неэффективно, потому что мне нужно щелкнуть примерно на 400 веб-страниц и скопировать таблицы (входящий / исходящий трафик, максимальное / среднее / текущее использование ЦП, максимальное / Avg Connections и т. Д.) Из html.

Мой вопрос: есть ли скрипты / инструменты для автоматизации этой работы? [Извлеките определенные значения таблицы с каждой веб-страницы и заполните таблицу / Excel].

Вы можете обнаружить, что есть лучшие способы получить нужные данные, чем анализ HTML, созданного MRTG (например, например, использование SNMP напрямую). Однако это может помочь, если действительно нужно проанализировать HTML:

Если вы хотите использовать Python, вам поможет библиотека BeautifulSoup. Вам все равно придется написать код, но BeautifulSoup довольно гибкий.

Вот грубый пример, который выгружает все HTML-таблицы на странице в CSV:

import sys
import csv
import urllib2

import BeautifulSoup

page    = urllib2.urlopen(sys.argv[1]).read()
soup    = BeautifulSoup.BeautifulSoup(page)
csvout  = csv.writer(sys.stdout)

for table in soup.findAll('table'):
    print '#'
    print '# Table'
    print '# Fields: ' + ','.join([tr.text for tr in table.findAll('th')])
    for row in table.findAll('tr'):
        csvout.writerow([tr.text for tr in row.findAll('td')])
    print

Предполагая, что у вас установлен Python, а также BeautifulSoup (pip install BeautifulSoup или easy_install BeautifulSoup) и предполагая, что вы сохранили приведенный выше код как htmltable2csv.py вы можете отобразить все таблицы на странице следующим образом:

python htmltable2csv.py http://www.w3schools.com/tags/tag_table.asp

Я наконец нашел расширение Firefox iMacros для Firefox очень полезен при записи и воспроизведении повторяющейся работы. Он хорошо и эффективно извлекает данные с огромных веб-страниц с одинаковой структурой.

Более того, iMacros подробно описал учебные пособия и образцы кодов. iMacros для Firefox бесплатен для личного и коммерческого использования, если вас это волнует (например, меня).

Я настоятельно рекомендую iMacros если вы когда-нибудь захотите автоматизировать какую-то громоздкую работу!