Facebook 比它出现的其他网站要复杂一些。
在 Firebug 中查看 NET 下的 POST 选项卡时,在登录时,我看到以下 POST 参数:
charset_test €,´,€,´,水,Д,Є
default_persistent 1
email myusername
lgnjs 1340241652
lgnrnd 182050_CuPx
locale en_US
lsd AVqwALVx
pass mypassword
persistent 1
timezone 240
我还不知道lsd
参数是什么,但我确实通过在登录之前查看登录页面的源代码找到了 lgnrnd 是什么。它似乎使自动化身份验证变得更加困难。
您首先希望您的脚本为该值抓取该登录页面,并将其存储在一个变量中。然后,一个 cURL 示例将类似于:
curl -L "https://www.facebook.com/login.php?login_attempt=1" \
--cookie-jar /tmp/cookies.txt \
--data-urlencode "email=myusername" \
--data-urlencode "lgnrnd=$lgnrnd" \
--data-urlencode "pass=mypassword"
and so forth, with all the parameters...
当然,这是未经测试的,我还不知道其中一些参数值是什么,但你应该从中得到想法。您可能可以使用像 Beautiful Soup 这样的 python 模块或其他东西来应用上述基本概念。
然后你会做同样的事情,查看 NET 选项卡以找到当你发布到你的 facebook 墙时发送的参数,并将它们放在一起。
请注意,我使用 curl 的 --cookie-jar 选项存储和使用 cookie。您还需要一种方法来保存和使用请求的 cookie,这就是我展示的原因。
希望对您入门有所帮助..