Python-Facebook fb_dtsg

标签 python facebook post get

在 Facebook 上我想找到 fb_dtsg 做一个状态:

import urllib, urllib2, cookielib
jar = cookielib.CookieJar() 
cookie = urllib2.HTTPCookieProcessor(jar)
opener = urllib2.build_opener(cookie)

data = urllib.urlencode({'email':"email",'pass':"password", "Log+In":"Log+In"})
req = urllib2.Request('http://www.facebook.com/login.php')
opener.open(req, data)
opener.open(req, data) #Needs to be opened twice to log on.

req2 = urllib2.Request("http://www.facebook.com/")
page = opener.open(req2)
fb_dtsg = page[page.find('name="fb_dtsg"') + 22:page.find('name="fb_dtsg"') + 33] #This just finds the value of "fb_dtsg".

是的,这确实找到了一个值,一个看起来像 fb_dtsg 的值,但是当我再次打开网页时以及当我用它来制作状态时,这个值总是在变化,它不会工作,如果我正常制作状态,当我记录谷歌浏览器上发生的事情时,我会得到一个工作的 fb_dtsg 值并且它不会改变(对于长时间的 session ),并且如果我用它来尝试 make一种状态。请告诉我如何在不使用 API 的情况下解决这个问题。

最佳答案

查找 fb_dtsg 的搜索条件截断了最后一位,因此将 33 更改为 34

fb_dtsg = page[page.find('name="fb_dtsg"') + 22:page.find('name="fb_dtsg"') + 34]

无论如何,您可以使用更好的方法使用 re 搜索 fb_dtsg

re.findall('fb_dtsg.+?value="([^"]+)"',page)

正如我在您早期的一篇帖子中回答的那样,它可能还需要其他 Conceal 变量。 如果这仍然不起作用,您能否提供您发布帖子的代码,包括所有帖子表单数据

顺便说一句,很抱歉没有查看您之前所有内容相同的帖子:P

关于Python-Facebook fb_dtsg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26038736/

相关文章:

javascript - 多次提交表单

python - 为什么有时用finally来调试呢?

python - 为什么输出总是为零?

python - 解决方案适用于样本数据,但在线判断给出错误?

android - Adobe AIR for Android - 打开 native Facebook 应用程序

c# - 如何使用 POSTin c# 发出 HTTP 请求并发送一些 xml 数据

python - 从运算符中分离出来,同时保留运算符

ios - 使用 Facebook 登录并获取适用于 iOS 7 的电子邮件和用户信息

android - Facebook session 权限 Android

php - 获取 native react 不发送帖子