用于登录网站的脚本,检查更改并在更改时发送电子邮件

时间:2013-05-21 22:25:18

标签: bash raspberry-pi

我希望写一个简单的脚本,它将登录到特定的网站(电子邮件作为用户名,不需要pw)并检查更改。如果有任何更改,我希望收到一封电子邮件通知,只是说明有更新。理想情况下,这个脚本会经常运行,可能每10分钟运行一次。

由于我不想让我的笔记本电脑打开,因此我认为我的Rasberry Pi(始终打开并且当前用于xbmc)应该在后台运行脚本。

我看过很多脚本来检查网站的变化,但是没有一个脚本适合需要登录但没有密码的情况。此外,在确定发生了变化后,我不确定发送电子邮件部分是如何工作的,我是否必须在Raspi上安装电子邮件程序?基本上我所知道的是Linux基础知识以及如何使用cron来安排这个脚本。

那么,是否有一个简单的脚本可以做到这一点?提前谢谢!

修改

登录页面的相关部分是

<form accept-charset="UTF-8" action="/booking/nanny_view/show" method="post">
  <div style="margin:0;padding:0;display:inline">
    <input name="utf8" type="hidden" value="&#x2713;" />
    <input name="authenticity_token" type="hidden" value="zH92kuR1rZAHqpfRUnrsB6Y9qRWJOZ46jnAao3xZOvA=" />
  </div>
  <p>
    Email Address: 
    <input id="search_email" name="search[email]" size="30" type="text" />
    <input name="commit" type="submit" value="Login" />
  </p>
</form>

2 个答案:

答案 0 :(得分:1)

Mechanize比纯命令行工具容易得多。 以下是检查页面的基本ruby脚本:

require 'mechanize'

page=Mechanize.new.get('http://www.nanniesoncall.com/booking/nanny_view/show')
form=page.forms.first
form["search[email]"]="me@foo.com"
result=form.submit

puts result.at("#main")

您可能需要调整最后一行以向您显示所需的信息。

答案 1 :(得分:0)

可以使用cron

在固定时间启动脚本

使用wget

可以将您的邮件地址发布到网站
wget --post-data='search[email]=me@foo.com' www.nanniesoncall.com/booking/nanny_view/show

(您可能还需要发送其他字段。 - 尤其是“authenticity_token”可能会给您带来麻烦。)

对于解析结果页面,可能只需要一个简单的grep即可。

对于更复杂的解决方案,请查看mechanize,perl,python和ruby的库,这使得发送数据和解析结果非常舒适。