post_form_id是什么?(使用python urllib2)
我想写一个Python脚本,用来登录Facebook,然后请求一些数据(主要是查看收件箱)。网上有一些不错的例子可以参考。我找到一个有趣的脚本,在这里,还有一个很好的例子在StackOverflow上。
我可以直接复制粘贴一些我需要的代码,这样就能实现我想要的功能,但这并不是一个好的学习方式。所以我想搞明白我到底在写什么,但我对第一个例子中的一些元素不太理解,特别是:什么是post_form_id?
这是代码中提到“post_form_id”的部分(第56-72行):
# Initialize the cookies and get the post_form_data
print 'Initializing..'
res = browser.open('http://m.facebook.com/index.php')
mxt = re.search('name="post_form_id" value="(\w+)"', res.read())
pfi = mxt.group(1)
print 'Using PFI: %s' % pfi
res.close()
# Initialize the POST data
data = urllib.urlencode({
'lsd' : '',
'post_form_id' : pfi,
'charset_test' : urllib.unquote_plus('%E2%82%AC%2C%C2%B4%2C%E2%82%AC%2C%C2%B4%2C%E6%B0%B4%2C%D0%94%2C%D0%84'),
'email' : user,
'pass' : passw,
'login' : 'Login'
})
你能告诉我post_form_id是什么吗?顺便问一下:你知道lsd这个键/值代表什么吗?
谢谢。
1 个回答
1
我不明白你为什么想要“破解”这个……其实,Facebook有一个官方的接口,可以用来读取用户的邮箱,你需要申请“read_mailbox”的权限才能做到这一点。
所以我建议你看看我在这里的帖子,里面讲了如何把Facebook和Python/Django结合使用,以及如何通过Python登录Facebook。
接着,我还推荐你阅读Facebook的文档,了解关于消息和收件箱的内容。
基本上,你需要一个访问令牌(access_token),然后你就可以使用这个链接:http://graph.facebook.com/me/inbox/?access_token=XXX
来获取信息。你还可以申请“offline_access”的权限,这样你只需要获取一次访问令牌,就可以“永久”使用它。
然后你可以用这个链接:http://graph.facebook.com/MESSAGE_ID?access_token=XXX
来获取某条特定消息的详细信息。
或者使用我在另一个帖子中提到的API:
f = Facebook()
res = f.get_object("me/inbox")
...
如果你对这个有任何问题,随时可以留言问我哦?