Xử lí logins và cookies (tiếp tục)
Ở đây bạn đang gửi các tham số login tới welcome page, cái đóng vai trò như cái xử lí cho login form. Bạn giành
cookies từ kết quả của yêu cầu cuối, in kết quả cho thẩm định, và sau đó gửi chúng tới profile page bằng cách
thiết lập đối số cookies.
Cái này làm việc tôt cho các tình huống đơn giản, nhưng cái gì xảy ra nếu bạn đang làm việc với site phức tạp
hơn cái thường xuyên điều chỉnh cookies mà không cảnh báo, hay bạn không nghĩ về cookies như cái khởi đầu? Hàm
Requests session làm việc hoàn hảo trong trường hợp này:
session = requests.Session()
params = {‘username’: ‘Ryan’, ‘password’: ‘password’}
s = session.post(‘https://pythonscraping.com/pages/cookies/welcome.php’, params)
print(‘Cookie is set to:’)
print(s.cookies.get_dict())
print(‘Going to profile page…’)
s = session.get(‘https://pythonscraping.com/pages/cookies/profile.php’)
print(s.text)
Trong trường hợp này, session object (giành bằng cách gọi requests.Session()) theo dấu thông tin session, như cookies,
headers hay thậm chí thông tin về các giao thức bạn có thể đang chạy trên đỉnh của HTTP, như HTTPAdapters.
Requests là một thư viện tuyệt vời, đứng thứ hai sau Selenium trong tính hoàn chỉnh của cái nó xử lí mà các lập trình
viên không phải nghĩ về nó hay viết code bản thân họ. Mặc dù nó cám dỗ để ngồi đấy và để thư viện làm tất cả công
việc, nó cực kì là quan trọng luôn nhận thức rằng cookies trông là gì và chúng đang kiểm soát gì khi bạn đang viết
các web scrapers. Nó có thể tiết kiệm bạn nhiều giờ debug mệt mỏi hay định hình ra tại sao một website có hành vi
lạ.