在 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/