我想为登录站点的 Cygwin/Bash 创建一个命令行脚本,导航到特定页面并将其与上次运行的结果进行比较。到目前为止,我已经像这样与 Lynx 合作了:
----snpipped, just setting variables----
echo "# Command logfile created by Lynx 2.8.5rel.5 (29 Oct 2005)
----snipped the recorded keystrokes-------
key Right Arrow
key p
key Right Arrow
key ^U" >> $tmp1 #p, right arrow initiate the page saving
#"type" the filename inside the "where to save" dialog
for i in $(seq 0 $((${#tmp2} - 1)))
do
echo "key ${tmp2:$i:1}" >> $tmp1
done
#hit enter and quit
echo "key ^J
key y
key q
key y
" >> $tmp1
lynx -accept_all_cookies -cmd_script=$tmp1 https://thewebpage.com/login
diff $tmp2 $oldComp
mv $tmp2 $oldComp
它绝对感觉不“正确”: cmd_script 由相对用户操作组成,而不是指定确切的链接名称和操作。因此,如果网站上的任何内容发生更改、切换位置或添加新链接 - 我将不得不重新创建操作。
此外,我无法检查任何错误,因此如果出现问题(登录失败等),我无法中止脚本
我一直在寻找的另一种选择是使用 Ruby 进行机械化(作为说明——我对 Ruby 的经验为 0)。
改进或重写它的最佳方法是什么?