Aktywne Wpisy

Wojciech_Skupien +193
30-letni koleś na wykopie: będę robić pompki i brzuszki, nigdy nie ćwiczyłem i nie byłem na siłowni.
Wykopki:
-To bez sensu
-Bedziesz mieć wadę postawy
-Na pewno robisz źle brzuszki
-Ale challenge z d--y
Wykopki:
-To bez sensu
-Bedziesz mieć wadę postawy
-Na pewno robisz źle brzuszki
-Ale challenge z d--y
źródło: temp_file3319126131157460459
Pobierz
Często jak słyszę, że ktoś studiuje i pracuje to mam w głowie wyobrażenie, że jest na kierunku, na którym wystarczy obecność, albo nawet i nie, żeby zaliczyć większość przedmiotów i nie wymaga on pracy własnej. Wzięło się to stąd, że jak sam byłem na studiach, to pochłaniały one tyle pracy i wkładu własnego po godzinach, że dorzucenie do tego jeszcze pracy było moim zdaniem niemożliwe. A ci, którzy próbowali pracować, to albo





Piszę sobie w programik pobierający dane z pewnego portalu, ale do pełnej funkcjonalności potrzebuję się do niego zalogować. Korzystam z
requestsirequests-htmlżeby otworzyć sesję i pobierać dane, potembeautifulsoup4do parsowania HTML. Działa to mniej więcej tak:session = requests_html.HTMLSession()response = session.post('[https://portal.pl/login',](https://portal.pl/login',) data=auth_data)
response = session.get('[https://portal.pl/dane')](https://portal.pl/dane'))
page = bs4.BeautifulSoup(response.html.html)
To zupełnie dobrze śmiga ale tylko tak długo, jak działa skrypt. Chciałem zachować sesję pomiędzy uruchomieniami poprzez serializację obiektu sesji za pomocą
pickle, trochę inspirując się tym rozwiązaniem, w skrócie zapisuję uzyskaną sesję:with open('session.pickle', 'wb') as file:pickle.dump(session, file)
a potem normalnie odczytuję ją i robię dalej requesty:
with open('session.pickle', 'rb') as file:session = pickle.load(file)
response = session.get('[https://portal.pl/dane')](https://portal.pl/dane'))
Problem: taka sesja pozostaje "żywa" tylko przez paręnaście minut. Jeśli odpalę skrypt np. pół godziny potem, to gety nie udadzą się i będę musiał logować się ponownie.
O co jeszcze muszę zadbać, co jeszcze zapisać, żeby to działało permanentnie? Jak to jest, że na tym samym portalu mogę zalogować się raz, wyłączyć na noc (albo na weekend) komputer, wrócić, a w przeglądarce sesja będzie zapamiętana?
#webdev #python
print(session.cookies)jest jeszcze drugie, ale też ma
expires=None...to już zależy od logiki która się wykonuje na backendzie. sprawdz czy na pewno request logowania jest taki sam z pythona jak
@sokytsinolop: Sprawdziłem teraz formularz logowania i w `
-ie do wprowadzania nazwy i hasła nie ma w ogóle czegoś takiego jak "zapamiętaj mnie". Natomiast są jeszcze dwa-y, których nie przekazywałem do mojego oryginalnego posta - jeden z login z URLem do przekierowania po zalogowaniu a inny jeszcze o jakiejś enigmatycznej nazwie_prm`. Spróbuję przekazać tak jak to robi przeglądarka i zobaczymy.Na sprawach
Zmień na któryś i daj znać czy pomogło.
https://developers.whatismybrowser.com/useragents/explore/software_name/chrome/
@salad_fingers: uwierzytelnianiem
_prm) i sesja trzyma już ponad godzinę - zobaczymy, czy dociągnie do rana.@dziekuje: Tak, domyślny user agent, nie pamiętam teraz jaki daje mi
requestsale nic tam nie zmieniałem. Mój cel pozwala mi się jednak z niego zalogować. Spróbuję potem z innych, dzięki za radę.@Lunatik: Heh, większość czasu operuję w przestrzeni angielskojęzycznej, czasami mi przeciekają takie
powodzenia, mam nadzieję ze udało się rozwiązać problem :)
Wielkie dzięki za podpowiedzi! :)