2015-07-22 25 views
9

Bir sayfaya giriş yapmaya ve sayfadaki başka bir bağlantıya erişmeye çalışıyorum.Python İstekleri'nde çerezler nasıl kullanılır?

Bu bana "405 İzin verilmez" hatası veriyor. Krom geliştirici araçlarını kullanarak gönderi yöntemi ayrıntılarını kontrol ettim ve bir API (api/api/auth) görebildim. Bu URL'ye yük yüküyle gönderildim ve çalışıyordu ve geliştiricide görebildiğime benzer bir yanıt alıyordum.

Maalesef giriş yaptıktan sonra başka bir URL almayı denerken maalesef içeriğe giriş sayfasından ulaşıyorum. Oturum açma neden desteklenmiyor? Kurabiyeler kullanmalı mıyım? Ben yeni biriyim, bu yüzden çerezlerle nasıl çalışacağımı bilmiyorum. documentation itibaren

cevap

6

:

url = 'http://example.com/some/cookie/setting/url' 
r = requests.get(url) 
r.cookies 

{'example_cookie_name': 'example_cookie_value'}

  • sonraki istek üzerine sunucuya geri çerez vermek yanıttan

    1. olsun çerez

      url = 'http://httpbin.org/cookies' 
      cookies = dict(cookies_are='working') 
      r = requests.get(url, cookies=cookies)` 
      
  • +0

    Teşekkür: komut dosyasını çalıştırmak her zaman giriş zorunda kalmadan kalıcı. Aslında, yaratılmayacak bir çerez yok gibi görünüyor. İstek başlıklarını kontrol ettim ve herhangi bir 'çerez' göremedim. Bu arada yanıt başlıklarında oluşturulmuş bir çerez var. Çerez olmaması durumunda giriş çubuğumu nasıl yapabilirim? – user1474157

    +0

    Bir kimlik doğrulama tanımlama bilgisi için normal akış: (1) bir giriş formu gönderdiğinizde, yanıt başlıklarında bir çerez alırsınız. (2) sonraki sayfa taleplerinde, çerezi istek başlıklarına eklersiniz. –

    14

    Bir oturum nesnesini kullanabilirsiniz. http://docs.python-requests.org/en/latest/user/advanced/

    Ayrıca, harici dosyaya çerez verileri kaydetmek ve sonra oturumu tutmak için tekrar yükleyebilirsiniz: Eğer isteklerini yapabilir ve bunu

    s = requests.Session() 
    # all cookies received will be stored in the session object 
    
    s.post('http://www...',data=payload) 
    s.get('http://www...') 
    

    Dokümanlar için çerezleri kolları böylece çerezleri saklar

    How to save requests (python) cookies to a file?