2012年1月6日星期五

cURL “虾米” 签到的小脚本

这个脚本用于登陆虾米网站,并进行签到。虽然只是个二三十行的脚本,但由于对cURL不甚
了解,还是搞了几天。主要的经验有:

  1.  curl 用 -d 发送表单时,要把按钮的值也加进去("submit=登录")
  2.  curl 处理 ajax,应该通过分析javascript脚本,找到真正接收请求的url
  3.  curl 模拟 ajax时,添加 HTTP头 "X-Requested-With: XMLHttpRequest",更好的方法是观察实际的HTTP头,并构造出个一样的
  4.  总之,分析浏览器的HTTP请求,再用 cURL构造即可。


#! /bin/bash

declare -r SCRIPT="${0##*/}"

SITE="http://www.xiami.com"
USERAGENT="Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.0)"
COOKIEFILE="cookie.txt"

USER="********@gmail.com"
PASSWORD="******"

# 检测cookie
if [[ ! -e $COOKIEFILE ]];then
    # 登录xiami
    curl -c $COOKIEFILE -d "email=$USER&password=$PASSWORD&submit=登录"  "$SITE/member/login"
fi

# 单击"签到"
curl -s  -b $COOKIEFILE -A "$USERAGENT" -e "$SITE" -H "X-Requested-With: XMLHttpRequest" -X POST -d "" "$SITE/task/signin" --retry 5 -H "Connection: keep-alive" 1>/dev/null

# 删除cookie
#rm $COOKIEFILE

没有评论:

发表评论