2016-04-03 597 views
0

我試圖做一個自動化,將通過一個instagram api發送http請求跟隨或取消關注用戶,現在我正在使用Python請求模塊和我試圖通過網站'http://pikore.com'。我現在的代碼是:Python的請求:如何從302重定向獲取響應cookie

import requests 
from requests.auth import HTTPBasicAuth 

s = requests.Session() 
s.get('http://pikore.com') 

print(s.cookies) 
s.get('http://www.pikore.com/session/new?from=%2F', auth=HTTPBasicAuth('USERNAME', 'USERSECRET')) 
pikore_session = s.cookies['_pikore_session'] 
print(s.cookies) 
s.get('http://pikore.com') 
print(s.cookies) 

cookies = { 
'_pikore_session': pikore_session, 
'token': 'BAhJIjcyNTY5NDczOTIuZWIxM2FlYi41Mjc3ZTI4NjI4ZDM0NDRlOGRjNWNjZmFjNWU3YmJmYgY6BkVU--9b52c6305368f28c83ffc288e9d55e94b3e864db', 
} 

headers = { 
    'Host': 'www.pikore.com', 
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0', 
    'Referer': 'http://www.pikore.com/nike', 
} 

print(s.get('http://www.pikore.com/follow/13460080', headers=headers, cookies=cookies)) 
s.get('http://www.pikore.com/') 
print(s.cookies) 

所以此工程,並開展定的請求,唯一的一點是,授權線將只能獲得「_pikore_session」餅乾,但沒有標識cookie,我想要得到。 在您通過instagram授權重定向登錄後,它會重定向您三次,最後您將登錄網站並登錄,但在第三次重定向時,我可以看到它輸出了「令牌」響應cookie,我想讓別人知道,這樣我就不用每次都去手動獲取它。

回答

1

我今天試圖解決這個問題,發現a relevant bug in requests

使用關閉auto_redirect的JohnCC330的解決方案爲我工作:

res = requests.post(
    host, 
    data={'somefield':'my value'}, 
    allow_redirects=False) 

if res.status_code == 302: # expected here 
    jar = res.cookies 
    redirect_URL2 = res.headers['Location'] 
    res2 = requests.get(redirect_URL2, cookies=jar) 
    # res2 is made with cookies collected during res' 302 redirect 

希望這有助於

鮑勃