2014-11-25 96 views
3

我試圖將彈出窗體的數據發佈到本地網站。爲此,我正在模擬網站提供的請求標題,數據和Cookie信息。 (注:我主要是從代碼中修改我的電子郵件和密碼(出於顯而易見的原因),但所有其他代碼將保持不變。)Python請求創建Cookie失敗

我嘗試了cookie,頭文件,請求,數據等的多個排列組合此外,我已經在網絡督察中驗證了cookie和預期的標題和數據。我可以使用requests' sample code輕鬆設置cookie。我無法解釋爲什麼我的代碼無法在現場使用,我非常感謝任何幫助。請參閱以下代碼以獲取更多詳細信息。

import requests 
import robobrowser 
import json 

br = robobrowser.RoboBrowser(user_agent="Windows Chrome",history=True) 

url = "http://posting.cityweekly.net/gyrobase/API/Login/CookieV2" 
data ={"passwordChallengeResponse":"....._SYGwbDLkSyU5gYKGg", 
     "email": "<email>%40bu.edu", 
     "ttl":"129600", 
     "sessionOnly": "1" 
     } 
headers = { 
    "Origin": "http://posting.cityweekly.net", 
    "Accept-Encoding": "gzip, deflate", 
    "Accept-Language": "en-US,en;q=0.8,ru;q=0.6", 
    "User-Agent": "Windows Chrome", #"Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36", 
    "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", 
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 
    "Referer": "http://posting.cityweekly.net/utah/Events/AddEvent", 
    "X-Requested-With": "XMLHttpRequest", 
    "Connection": "keep-alive", 
    "Cache-Control": "max-age=0", 
    "Host":"posting.cityweekly.net" 

} 
cookie = {"Cookie": "__utma=25975215.1299783561.1416894918.1416894918.1416897574.2; __utmc=25975215; __utmz=25975215.1416894918.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __qca=P0-2083194243-1416894918675; __gads=ID=e3b24038c9228b00:T=1416894918:S=ALNI_MY7ewizuxK0oISnqPJWlLDAeKFMmw; _cb_ls=1; _chartbeat2=D6vh2H_ZbNJDycc-t.1416894962025.1416897589974.1; __utmb=25975215.3.10.1416897574; __utmt=1"} 
r = br.session.get(url, data=json.dumps(data), cookies=cookie, headers=headers) 
print r.headers 
print [item for item in r.cookies.__dict__.items()] 

請注意,我打印了Cookie對象,並且cookie屬性(字典)爲空。

回答

1

您需要執行POST以登錄到該網站。一旦你這樣做了,我相信這些cookies將會有正確的值,(不是100%......)。這個post闡明瞭如何正確設置cookie。

注意:我認爲您不需要額外導入請求,除非您在RoboBrowser之外使用它。

+0

歡迎來到StackOverflow。您的答案已經在「非常低質量的帖子評論」隊列中結束,因爲它看起來像是一個要求澄清而不是實際答案的評論。但是,我可以看到您提供了實際的答案:他們需要使用POST。您可能想要更改您的答案,使其看起來不像問題或評論,以免有人不小心刪除它。 – GreenAsJade 2014-12-26 04:03:25