Python-Facebook fb_dtsg

Python-Facebook fb_dtsg,python,facebook,post,get,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"

在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的值,但当我再次打开网页时,以及当我使用它来创建状态时,这个值总是在变化,它不起作用,当我在google chrome上记录正在发生的事情时,如果我正常创建状态,我会得到一个有效的fb_dtsg值,它不会改变(在一个长的会话中),如果我用它来尝试创建一个状态,它就会起作用。请,请告诉我如何在不使用API的情况下解决此问题。

查找fb\U dtsg的搜索条件会截断最后一位数字,因此将33改为34

fb_dtsg = page[page.find('name="fb_dtsg"') + 22:page.find('name="fb_dtsg"') + 34]
无论如何,您可以使用一种更好的方法,使用re搜索fb\U dtsg

re.findall('fb_dtsg.+?value="([^"]+)"',page)
正如我在你早期的一篇文章中回答的,它可能还需要其他隐藏变量。 如果这仍然不起作用,你能提供你在哪里写文章的代码,包括所有的文章表单数据吗


顺便说一句,很抱歉没有看到你之前所有内容相同的帖子:p

谢谢,因为我需要的是没有得到最后一个字符(33到34)。