1
通過python我想使用urllib,urllib2,cookielib(無需下載模塊)發佈fb狀態。我會成功登錄,但是我發佈狀態的代碼不起作用。我會檢查狀態消息框和發佈框的元素(對於m.facebook),並且狀態消息框'name'是狀態,並且發佈框的'值'是Post,但它不會在發佈時發佈狀態嘗試。我該如何做這項工作?Python - 通過與urllib2通過會話登錄時發佈Facebook狀態
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':'[email protected]','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")
你能否解釋更多如何捕捉這樣的請求? – user3818650 2014-09-20 10:19:07
簡單的步驟,如果使用鉻 0)打開fb頁面與帖子對話框準備 1)檢查元素2)轉到網絡選項卡3)按清除按鈕以清除先前的會話,並點擊「記錄網絡日誌」4)然後發佈一些內容,查看已發送的第一個請求。在Headers選項卡中向下滾動到Form數據以檢查發送的有效負載是什麼。查看此鏈接https://developer.chrome.com/devtools/docs/network以獲得更深入的瞭解。 – 2014-09-20 14:13:25
也請查看http://stackoverflow.com/questions/9163251/chrome-source-of-post-data – 2014-09-20 14:20:18