Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 10, 2017 05:17:01

deep-north
Зарегистрирован: 2015-05-04
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсинг страницы.

Доброго времени суток!
Помогите разобраться с таким вопросом.
Есть html-страница в локальной сети на php (типа: 192.168.100.1/page.php). Она динамическая. В ней есть несколько таблиц, они пустые, но могут время от времени заполняться. Нужно при появлении строки в определенной таблице выдать звуковой сигнал.
При просмотре кода страницы требуемая таблица написана обычными тегами html.
Доступа к коду этой страницы нет, т.е. нужно создать свою (или что-то другое), чтобы она могла выполнять нужное мне действие.
С html-страницами в питоне никогда не работал, поэтому вообще не имею понятия, с чего начать. В гугле говорят использовать lxml и BeautifulSoup. Но к какому месту их прикрепить, пока не понимаю.
Помогите, пожалуйста.
Заранее благодарен.
Пы.Сы. Работаю в винде.

Офлайн

#2 Окт. 10, 2017 08:41:21

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Парсинг страницы.

начните с простого.
https://docs.python.org/3/library/urllib.request.html#module-urllib.request
https://www.w3schools.com/html/
Вполне может быть что BeautifulSoup и lxml вам не потребуются, но может оказаться что их совсем недостаточно.

deep-north
Нужно при появлении строки в определенной таблице
Вы меня прямо заинтриговали. Вы сидите, смотрите на окно, ничего не трогаете руками, и у вас вылезает новая строка в таблице?



Офлайн

#3 Окт. 10, 2017 09:35:14

deep-north
Зарегистрирован: 2015-05-04
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсинг страницы.

doza_and
Вы меня прямо заинтриговали. Вы сидите, смотрите на окно, ничего не трогаете руками, и у вас вылезает новая строка в таблице?

Тут нет ничего загадочного. Эта страница берет данные из заббикса., т.е. мониторинг.
Если появилась строчка, значит какой-то хост пропал из сети.
И мне нужно, чтобы аварии из определенной таблицы (их несколько) еще и пищала, т.к. приоритет у нее выше, чем у других.
Конечно в идеале, нужно прикрутить свистелку к той самой странице, но доступа к ней нет.
Поэтому я и ищу варианты.

Есть идея копировать содержимое той страницы, выкидывать лишнее, генерить новую. А вот уже в новой включать сигнализацию.
Только вот вопрос, как копировать только нужные данные.

Офлайн

#4 Окт. 10, 2017 23:11:17

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

Парсинг страницы.

Непонятно к чему у вас есть доступ. НО первая ссылка в гугле дает:
https://www.zabbix.com/forum/showthread.php?t=20167



Офлайн

#5 Окт. 10, 2017 23:18:46

deep-north
Зарегистрирован: 2015-05-04
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсинг страницы.

doza_and
Непонятно к чему у вас есть доступ. НО первая ссылка в гугле дает:https://www.zabbix.com/forum/showthread.php?t=20167
К сожалению, у меня нет доступа к заббиксу.
У меня есть доступ к html-странице, которая генерится каким-то скриптом из заббикса (или обращающимся к заббиксу). Т.е. я просто вижу вывод в формате страницы html. А эта страница состоит из обычных таблиц. Т.е. в ее коде нет ни одной строчки скрипта.

Вот поэтому я и хочу такой костыль придумать )))

Офлайн

#6 Окт. 11, 2017 07:02:21

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Парсинг страницы.

deep-north
Т.е. в ее коде нет ни одной строчки скрипта.

Видимо, у вас какой-то экспериментальный заббикс



Отредактировано FishHook (Окт. 11, 2017 07:05:52)

Офлайн

#7 Окт. 11, 2017 10:15:16

deep-north
Зарегистрирован: 2015-05-04
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсинг страницы.

FishHook
Эта страница не из заббикса. В нее сводятся данные из заббикса, но не из самого заббикса, а из какого-то скрипта, который этот заббикс опрашивает. Ее написали товарищи по работе. Но возможности спросить у них нет.
Т.е. сама страница, которую я вижу, выглядит примерно так:
<html>
<head>
<title>HTML код таблицы, примеры</title>
</head>
<body>
<table border=“1”>
<tr>
<td>ячейка 1, первый ряд</td>
<td>ячейка 2, первый ряд</td>
</tr>
<tr>
<td>ячейка 1, второй ряд</td>
<td>ячейка 2, второй ряд</td>
</tr>
</table>
</body>
</html>

Вот в чем дело. Если бы был доступ к заббиксу, я бы тогда сюда и не пришел ))

Есть несколько таблиц. Их ячейки заполняются скриптом.
Поэтому суть задачи: включить звуковой сигнал при появлении в определенной таблице заполненных ячеек.

Отредактировано deep-north (Окт. 11, 2017 10:19:03)

Офлайн

#8 Окт. 11, 2017 10:58:30

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Парсинг страницы.

  
>>> import lxml.html
>>> 
>>> text = """\
... <html>
... <head>
... <title>HTML код таблицы, примеры</title>
... </head>
... <body>
... <table border="1">
... <tr>
... <td>ячейка 1, первый ряд</td>
... <td>ячейка 2, первый ряд</td>
... </tr>
... <tr>
... <td>ячейка 1, второй ряд</td>
... <td>ячейка 2, второй ряд</td>
... </tr>
... </table>
... </body>
... </html>
... """
>>> 
>>> doc = lxml.html.fromstring(text)
>>> node = doc.xpath(r'.//table/tr[2]/td[2]')[0]
>>> out = node.text
>>> out
'ячейка 2, второй ряд'
>>>



Офлайн

#9 Окт. 11, 2017 11:01:20

deep-north
Зарегистрирован: 2015-05-04
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Парсинг страницы.

py.user.next
Спасибо!
Завтра попробую.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version