使用curl&amp ;,按网页上的javascript按钮庆典

时间:2015-07-02 08:46:45

标签: javascript bash curl

我在这里的第一篇文章,所以如果在其他地方回答这个话题,请告诉我。 我找到了类似的帖子,但没有设法使用它们来解决我的问题。

背景: 我使用IPTV服务提供商,可以在运行KODI的RPi上观看电视频道。 因此,该提供商促进IPTV简单客户端的使用以及一些播放列表URL。 使思考更短,此播放列表仅为我的帐户生成,并且绑定到我的公共IP地址。 问题,我没有,并希望修复公共IP地址,所以每次我的ISP重置我的DSL连接时,我必须登录IPTV提供商页面并按下所谓的“更新IP”按钮。那很烦人! 我希望使用bash脚本自动执行该操作,该脚本将由我的rpi上定期运行的动态DNS服务更新触发。

到目前为止我管理的内容: - 使用带有CURL的bash命令登录网页并将cookie保存到文本文件中。 有了这个:

 curl -c cookie.txt -d "user=mymail@mail.com" -d "pass=mypass" http://www.spicetvbox.ro/user/login

然后我尝试了几种方法来按下“更新IP”按钮:

 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

并分配其他命令。 我试图使用firebug来检查按钮元素.. 这是来自firebug的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按下该按钮的建议。

1 个答案:

答案 0 :(得分:0)

您不需要单击按钮 - 您需要提交表单,或者至少达到相同的效果。

使用cURL对http://www.spicetvbox.ro/user/xbmc执行HTTP POST - 类似这样的事情:

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

此数据取自表单字段的值,而URL取自表单元素的action属性。当指定--data(相当于-d)时,cURL会执行POST。