Извлечь данные из таблицы HTML и поместить их в текстовый файл с оболочкой

Мне понадобится сценарий оболочки, чтобы получить общедоступный пароль для VPN с сайта (который обновляет пароль каждый день более или менее). Пароль представляет собой HTML-таблицу в определенной строке HTML-кода веб-страницы. После того, как я восстановил пароль (слово, состоящее из 5 символов), я хотел бы поместить его в конец простого текстового файла. Мне нужен такой скрипт, чтобы автоматически обновлять пароль в клиенте OpenVPN моего маршрутизатора на базе OpenWrt.

Это веб-страница, о которой я говорю, и это строка с номером 265, где указан пароль (есть два варианта пароля, не имеет значения, какой из них выбирает скрипт:

<td>1<td>in1.vpnjantit.com<td>53,992,1194,25000<td><a href='http://www.vpnjantit.com/assets/in1.vpnjantit.com.zip'>in1.vpnjantit.com.zip</a><td>vpnjantit.com<td>x3bu7<td>2018-03-31 at 22:00<tr><tr><td>2<td>in2.vpnjantit.com<td>53,443,1194,25000<td><a href='http://www.vpnjantit.com/assets/in2.vpnjantit.com.zip'>in2.vpnjantit.com.zip</a><td>vpnjantit.com<td>x3bu7<td>2018-03-31 at 22:00<tr></table></div>

Файл, куда я хочу поставить пароль, будет очень простым:

vpnjantit.com
passwd

Первая строка - это имя пользователя, и оно всегда будет одинаковым: "vpnjantit.com". Вторая строка - пароль из 5 символов. Мне нужно, чтобы скрипт сначала удалял вторую строку файла, а затем помещал пароль из html-файла во вторую строку (замените старый пароль новым).

Я оглянулся и попытался что-то сделать с помощью последовательности awk, curl, cat и других команд, но я не смог получить желаемый результат. На самом деле понятия не имею, как это реализовать.

Заранее большое спасибо за любые советы!

1 ответ

Я использовал nokogiriХотя есть и другие инструменты.

echo vpnjantit.com > file.txt # first line
curl http://www.vpnjantit.com/free-openvpn-india.html | nokogiri -e 'puts $_.at_css("table > tr > td:nth-child(6)").text >> file.txt # second line

Это заменит файл сразу (удалите его и создайте новый).

Обратите внимание, что это может сломаться в любое время даже при незначительных изменениях формата.

Другие вопросы по тегам