Aktywne Wpisy
retromirek +412
W ciągu zaledwie kilku lat pochowałem całą swoją najbliższą rodzinę. Zostałem na świecie zupełnie sam, mając pod opieką dorastające dziecko. Robię za ojca, matkę i tarczę ochronną.
Po drugiej stronie mam byłą żonę, której jedynym celem życiowym stało się zniszczenie mnie psychicznie, finansowo i zdeptanie spokoju naszego dziecka. Od lat toczę wykańczającą walkę z patologią systemu, złośliwością urzędników i kłamstwami. Ex zdołała zmanipulować i przeciągnąć na swoją stronę resztki mojej dalszej rodziny, robiąc
Po drugiej stronie mam byłą żonę, której jedynym celem życiowym stało się zniszczenie mnie psychicznie, finansowo i zdeptanie spokoju naszego dziecka. Od lat toczę wykańczającą walkę z patologią systemu, złośliwością urzędników i kłamstwami. Ex zdołała zmanipulować i przeciągnąć na swoją stronę resztki mojej dalszej rodziny, robiąc

moll +41
Hit niejednych urodzin w latach dziewięćdziesiątych, a tak mnie nostalgia naszła
#kuchniamoll #gotujzwykopem
#kuchniamoll #gotujzwykopem
źródło: 1000020197
Pobierz




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! :)