Python-通过urllib2会话登录时发布Facebook状态
通过python,我想使用urllib、urllib2、cookielib(不下载模块)发布fb状态。我将成功登录,但我发布状态的代码将不起作用。我会检查状态消息框和邮箱(对于m.facebook)的元素,状态消息框“name”是status,而邮箱的“value”是post,但在我尝试时它不会发布状态。我怎样才能做到这一点Python-通过urllib2会话登录时发布Facebook状态,python,facebook,session-cookies,urllib2,urllib,Python,Facebook,Session Cookies,Urllib2,Urllib,通过python,我想使用urllib、urllib2、cookielib(不下载模块)发布fb状态。我将成功登录,但我发布状态的代码将不起作用。我会检查状态消息框和邮箱(对于m.facebook)的元素,状态消息框“name”是status,而邮箱的“value”是post,但在我尝试时它不会发布状态。我怎样才能做到这一点 import urllib2, urllib, cookielib
import urllib2, urllib, cookielib
class Acc:
jar = cookielib.CookieJar()
cookie = urllib2.HTTPCookieProcessor(jar)
opener = urllib2.build_opener(cookie)
def login(self):
try:
params = urllib.urlencode({'email':'user@hotmail.com','pass':'password','login':'Log+In'})
req = urllib2.Request('http://m.facebook.com/login.php?m=m&refsrc=m.facebook.com%2F', params)
res = self.opener.open(req)
html = res.read()
except urllib2.HTTPError, e:
print e.msg
except urllib2.URLError, e:
print e.reason[1]
return False
def fetch(self,url):
req = urllib2.Request(url,None)
res = self.opener.open(req)
return res.read(), res.headers.get("Set-Cookie")
bla = Acc()
bla.login()
webpage, session = bla.fetch("http://m.facebook.com/login.php?m=m&refsrc=m.facebook.com%2F")
if "Logout" in webpage:
print("Logged in cuzzie")
print("Sending Post")
post = urllib.urlencode({'status':'message','Post':'Post'})
a = urllib2.Request("http://m.facebook.com/")
a.add_header("cookie", session)
g = urllib2.urlopen(a, post)
print("Post Sent")
有许多隐藏属性正在被发送,如csid、fb_dtsg
如果您使用的是chrome浏览器,您可以在发布状态后在开发者工具中看到网络选项卡。POST请求将发送到“”,因为您可以查看“表单数据”以查看请求中发送的所有字段。我认为您需要从登录响应页面获取的每一篇fb帖子都需要fb_dtsg和csid。您能解释更多关于如何捕获此类请求的信息吗?使用chrome的简单步骤0)在帖子对话框就绪的情况下打开fb页面1)检查元素2)进入网络选项卡3)按下清除按钮以清除早期会话然后点击“记录网络日志”,然后发布一些信息,查看发送的第一个请求。在Headers选项卡中,向下滚动以形成数据,以检查发送的有效负载。检查此链接以获得更深入的理解。也检查此链接