Saya menggunakan modul permintaan (versi 0.10.0 dengan Python 2.5). Saya telah menemukan cara mengirimkan data ke formulir login di situs web dan mengambil kunci sesi, tetapi saya tidak dapat melihat cara yang jelas untuk menggunakan kunci sesi ini dalam permintaan berikutnya. Dapatkah seseorang mengisi elipsis pada kode di bawah ini atau menyarankan pendekatan lain?
>>> import requests
>>> login_data = {'formPosted':'1', 'login_email':'[email protected]', 'password':'pw'}
>>> r = requests.post('https://localhost/login.py', login_data)
>>>
>>> r.text
u'You are being redirected <a href="profilePage?_ck=1349394964">here</a>'
>>> r.cookies
{'session_id_myapp': '127-0-0-1-825ff22a-6ed1-453b-aebc-5d3cf2987065'}
>>>
>>> r2 = requests.get('https://localhost/profile_data.json', ...)
python
python-requests
ChrisGuest
sumber
sumber
localhost
, mungkin ada masalah dengan login dan cookie lain yang dikembalikan oleh server web, jika berisi nilai properti domain yang salah. Karenalocalhost
, server web harus mengembalikan cookie dengan properti domain disetel kelocalhost.local
, jika tidak, cookie tidak akan diterapkan ke sesi. Dalam kasus penggunaan127.0.0.1
bukannyalocalhost
jawaban yang lain membantu untuk memahami bagaimana mempertahankan sesi seperti itu. Selain itu, saya ingin menyediakan kelas yang menjaga sesi dipertahankan selama menjalankan skrip yang berbeda (dengan file cache). Ini berarti "login" yang benar hanya dilakukan jika diperlukan (waktu habis atau tidak ada sesi di cache). Juga mendukung pengaturan proxy pada panggilan berikutnya ke 'get' atau 'post'.
Ini diuji dengan Python3.
Gunakan itu sebagai dasar untuk kode Anda sendiri. Cuplikan berikut dirilis dengan GPL v3
Cuplikan kode untuk menggunakan kelas di atas mungkin terlihat seperti ini:
sumber
requests
modul. Bagaimana Anda akan menerapkannya sebagai bagian dari modul? atau apa maksud Anda @ user1602?Lihat jawaban saya di pertanyaan serupa ini:
python: urllib2 cara mengirim cookie dengan permintaan urlopen
EDIT:
Saya melihat saya mendapatkan beberapa suara negatif untuk jawaban saya, tetapi tidak ada komentar yang menjelaskan. Saya menduga itu karena saya mengacu pada
urllib
perpustakaan, bukanrequests
. Saya melakukan itu karena OP meminta bantuanrequests
atau seseorang menyarankan pendekatan lain.sumber
requests
menawarkan solusi sederhana dan tingkat tinggi untuk masalah yang seharusnya membutuhkan 3 perpustakaan untuk diimplementasikan.Dokumentasi mengatakan bahwa
get
mengambilcookies
argumen opsional yang memungkinkan Anda menentukan cookie yang akan digunakan:dari dokumen:
http://docs.python-requests.org/en/latest/user/quickstart/#cookies
sumber
Setelah mencoba semua jawaban di atas, saya menemukan bahwa menggunakan "RequestsCookieJar" alih-alih CookieJar biasa untuk permintaan berikutnya memperbaiki masalah saya.
sumber
potongan untuk mengambil data json, dilindungi kata sandi
sumber
Simpan hanya cookie yang diperlukan dan gunakan kembali.
sumber
Ini akan berhasil untuk Anda dengan Python;
sumber