查询Google.Groups

时间:2011-09-03 16:40:44

标签: curl

我做了一些谷歌搜索,并来到下面的脚本, 任何人都可以帮助/我,并提供一个线索,为什么这不会登录到groups.google.com?

#!/bin/bash

tmp=$$.tmp
EMAIL=<email>
PASSWD=<password>

curl -vv --silent https://www.google.com/accounts/ServiceLoginAuth \
    --user-agent "Mozilla 5.0" \
    --data-urlencode Email=$EMAIL --data-urlencode Passwd=$PASSWD \
    -c cookie.tmp \
    -d accountType=GOOGLE \
    -d source=Google-cURL-Example \
    -d service=groups2 > $tmp

auth=`grep Auth $tmp | sed 's/.*=//'`

curl --silent \
      --user-agent "Mozilla 5.0" \
      --header "Authorization: GoogleLogin auth=$auth"  \
      -b cookie.tmp \
  "http://groups.google.com/group/comp.lang.javascript/topics" > $tmp>

cat $tmp
rm $tmp

1 个答案:

答案 0 :(得分:0)

我没有直接使用/ServiceLoginAuth,但是从我与/Login/AddSession的合作中,我的猜测是您缺少一些用于保护登录的隐藏表单值。

在这种情况下,我会查看隐藏的#gaia_universallogin表单并尝试复制登录流程:

  1. 点击https://www.google.com/accounts/ServiceLoginAuth。它会返回一个标识为gaia_universallogin的表单,其中包含登录标记。
  2. 设置POST数据以反映该表单的每个标头,以及EmailPasswd字段(就像您现在所做的那样)
  3. 设置continue参数(如果您愿意)并POST请求。如果您已登录,则会返回Google设置页面或继续页面;如果不是,则会返回包含其他登录表单的页面。
  4. 在这种情况下,我怀疑你错过了dsh令牌。