2015-07-02 2 views
0

Мой первый пост здесь, поэтому, пожалуйста, если эта тема ответит в другом месте, дайте мне знать. Я нашел похожие сообщения, но не смог их использовать для решения моей проблемы.Нажмите кнопку javascript на веб-странице, используя curl & bash

Справочная информация: Я пользуюсь провайдером услуг IPTV, который предлагает возможность просмотра телевизионных каналов на моем RPi, работающем с KODI. SO Этот провайдер способствует использованию простого клиента IPTV вместе с некоторыми URL-адресами плейлистов. Полагаю, что эти плейлисты генерируются только для моей учетной записи и привязаны к моему общедоступному IP-адресу. Проблема: у меня нет и хочу иметь общедоступный IP-адрес, поэтому каждый раз, когда мой ISP сбрасывает мое DSL-соединение, мне нужно зайти на страницу поставщика IPTV и нажать на кнопку «Обновить IP-адрес». Это раздражает!! Я хочу автоматизировать это с помощью скрипта bash, который будет вызван моим обновлением службы динамического dns, которое выполняется регулярно на моем rpi.

Что мне удалось: - используйте команду bash с CURL для входа на веб-страницу и сохранения файла cookie в текстовый файл. с этим:

curl -c cookie.txt -d "[email protected]" -d "pass=mypass" http://www.spicetvbox.ro/user/login 

А потом я попробовал несколько способов, чтобы нажать на эту кнопку «IP Update» с:

curl -b cookie.txt -d "press=UPDATEIP" http://www.spicetvbox.ro/user/xbmc 
curl -b cookie.txt -d "button=Upfate IP" http://www.spicetvbox.ro/user/xbmc 
curl -b cookie.txt -X POST http://www.spicetvbox.ro/user/xbmc 

И ВЫДЕЛИТЬ других команд, как это. Я пытался использовать поджигатель, чтобы проверить элемент кнопки .. и это HTML от поджигатель:

<form id="formXBUpd89942" class="jqValidation" role="form" novalidate="novalidate" action="http://www.spicetvbox.ro/user/xbmc" method="post"> 
<input type="hidden" value="UPDATEIP" name="run"> 
<input type="hidden" value="89942" name="id"> 
<button class="btn btn-info btn-xs" type="submit"> 
<i class="fa fa-refresh"></i> 
    Update IP 
</button> 

Пожалуйста, дайте мне несколько советов о том, как нажать эту кнопку с CURL.

ответ

0

Вам не нужно нажимать кнопку - вам необходимо отправить форму или, по крайней мере, добиться такого же эффекта.

Используйте Curl, чтобы сделать HTTP POST, чтобы http://www.spicetvbox.ro/user/xbmc - что-то вроде этого:

curl -b cookie.txt --data "run=UPDATEIP&id=89942" http://www.spicetvbox.ro/user/xbmc 

Эти данные берутся из значения полей формы и URL берется из атрибута элемента формы action. Когда указано --data (эквивалентно -d), cURL выполняет POST.

+0

Если у вас проблемы с запуском завитки (и можно надежно воспроизвести их), возможно, это должен быть отдельный вопрос, хотя и без подробностей я не уверен, как я или кто-то еще сможет вам помочь ... –

+1

Вы правы, извините за то, что не предоставляете многие детали. Я попытаюсь устранить это самостоятельно, и если я этого не сделаю, я отправлю новый вопрос. Большое спасибо, Том Фенек, ты сделал мой день: D – luci84tm

Смежные вопросы