2013-04-03 17 views
25

Próbuję zeskrobać niektóre dane dotyczące sprzedaży za pomocą StubHub API. Przykładem tych danych widać tutaj:Korzystanie z zapytań w języku Python: sesje, pliki cookie i POST

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

Zauważysz, że jeśli spróbujesz i odwiedzić ten adres URL bez logowania do stubhub.com, to nie będzie działać. You will need to login first.

Raz zalogowaniu się za pośrednictwem mojej przeglądarce, otwieram URL, którego chcę, aby zeskrobać w nowej karcie, a następnie użyć następującego polecenia, aby odzyskać dane strugane:

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

Jednak po sesja przeglądarki wygaśnie po dziesięciu minutach, otrzymuję ten błąd:

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

myślę, że trzeba zaimplementować identyfikator sesji za pomocą plików cookie, aby moje uwierzytelniania żywy i dobrze.

Dokumentacja biblioteki Wnioski jest dość przerażająca dla kogoś, kto nigdy wcześniej nie robił tego typu rzeczy, więc miałem nadzieję, że ludzie mogą ci pomóc.

Przykładem jest dostarczana przez Wnioski:

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"}}' 

Szczerze nie mogę zrobić monetą tego. Jak zachować pliki cookie między żądaniami POST?

+0

Jeśli masz jakiś prawny obowiązek usunąć treści, prosimy flag do moderacji uwagi i wyjaśnić sytuację jasno i podejmiemy odpowiednie działania. Proszę nie edytuj treści swojego pytania. – animuson

Odpowiedz

35

nie wiem jak działa api StubHub, ale generalnie powinno to wyglądać tak:

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

Teraz sesja zawiera ciasteczka dostarczane przez formularz logowania. Aby uzyskać dostęp do plików cookie z tej sesji po prostu użyć

s.cookies 

Jakiekolwiek dalsze działania, takie jak kolejne wnioski będą mieć ten plik

+0

Czy możesz mi pomóc? Próbowałem zalogować się na stronie w ten sposób, ale to nie działa. –

+0

@ MD.KhairulBasar Być może możesz zadać kolejne pytanie, podając adres e-mail i łącząc go w komentarzu? –

+0

Chociaż mam już odpowiedź, łączę moje [pytanie] (https://stackoverflow.com/questions/44548471/python-requests-cant-login-to-a-website) tutaj, ponieważ może to pomóc innym. –

Powiązane problemy