2013-04-03 41 views
25

Tôi đang cố gắng xóa một số dữ liệu bán bằng cách sử dụng StubHub API. Một ví dụ về dữ liệu này nhìn thấy ở đây:Sử dụng Yêu cầu Python: Phiên, Cookie và POST

https://sell.stubhub.com/sellapi/event/4236070/section/null/seatmapdata

Bạn sẽ nhận thấy rằng nếu bạn cố gắng và hãy truy cập url rằng nếu không đăng nhập vào stubhub.com, nó sẽ không làm việc. You will need to login first.

Một khi tôi đã đăng nhập thông qua trình duyệt web của tôi, tôi mở URL mà tôi muốn cạo trong một tab mới, sau đó sử dụng lệnh sau để lấy dữ liệu nạo:

r = requests.get('https://sell.stubhub.com/sellapi/event/4236070/section/null/seatmapdata') 

Tuy nhiên, khi phiên trình duyệt hết hạn sau mười phút, tôi nhận được lỗi này:

<FormErrors> 
<FormField>User Auth Check</FormField> 
<ErrorMessage> 
Either is not active or the session might have expired. Please login again. 
</ErrorMessage> 

tôi nghĩ rằng tôi cần phải thực hiện các session ID thông qua cookie để giữ cho xác thực của tôi và sống tốt.

Tài liệu thư viện yêu cầu là khá khủng khiếp đối với những người chưa từng làm điều này trước đây, vì vậy tôi hy vọng các bạn có thể giúp đỡ.

Ví dụ được cung cấp bởi yêu cầu là:

s = requests.Session() 

s.get('http://httpbin.org/cookies/set/sessioncookie/123456789') 
r = s.get("http://httpbin.org/cookies") 

print r.text 
# '{"cookies": {"sessioncookie": "123456789"}}' 

Tôi thành thật không có thể làm cho người đứng đầu hoặc đuôi về điều đó. Làm thế nào để bảo quản cookie giữa các yêu cầu POST?

+0

này Nếu bạn có một số nghĩa vụ pháp lý để loại bỏ các nội dung, xin vui lòng cờ đã quan tâm điều độ và giải thích tình hình rõ ràng và chúng ta sẽ có hành động thích hợp. Vui lòng không chỉ chỉnh sửa nội dung câu hỏi của bạn. – animuson

Trả lời

35

Tôi không biết cách thức hoạt động api StubHub, nhưng nói chung nó sẽ giống như thế này:

s = requests.Session() 
data = {"login":"my_login", "password":"my_password"} 
url = "http://example.net/login" 
r = s.post(url, data=data) 

Bây giờ phiên của bạn có chứa các tập tin cookie được cung cấp bởi mẫu đăng nhập. Để truy cập các tập tin cookie của phiên này chỉ cần sử dụng

s.cookies 

Bất kỳ hành động hơn nữa như các yêu cầu khác sẽ có cookie

+0

Bạn có thể giúp tôi không? Tôi đã cố gắng đăng nhập một trang web theo cách này nhưng nó không hoạt động. –

+0

@ MD.KhairulBasar Có lẽ bạn có thể đặt một câu hỏi khác cung cấp các deails và liên kết nó trong bình luận? –

+0

Mặc dù tôi đã có câu trả lời, tôi đang liên kết [câu hỏi] của tôi (https://stackoverflow.com/questions/44548471/python-requests-cant-login-to-a-website) tại đây vì nó có thể giúp người khác. –