Webscraping i ciasteczka

Odpowiedz Nowy wątek
2017-05-15 13:15
0

Próbuję pobrać html pewnej strony tym kodem;

import requests

site = "http://www.arenavision.in/av15"

res = requests.get(site)
res.raise_for_status()
file = open("source.txt", 'wb')
for chunk in res.iter_content(100000):
    file.write(chunk)
file.close()

jednak plik source.txt wygląda tak:

<html><head><script>function set_cookie(){
    var now = new Date();
    var time = now.getTime();
    time += 19360000*1000;
    now.setTime(time);
    document.cookie='beget=begetok'+';
    expires='+now.toGMTString()+'; 
    path=/';}
set_cookie();
location.reload();
;</script></head><body></body></html>

Co powinienem zrobić, aby przesłać odpowiednie ciasteczka?

Czytałem dokumentację urlib.request i http.cookiejar, ale jestem zielony w tym temacie i ciężko mi znaleźć tam odpowiednie rozwiązanie.
Python 3.6
Poniżej screen ciasteczek dla tej strony z chrome'a:
screen ciasteczek dla tej strony z chrome'a

Pozostało 580 znaków

2017-05-15 19:00

@gregxsunday - musisz wysłać request z ciasteczkami. Aby pobrać ciasteczka możesz zrobić coś takiego:

import requests

site = "http://www.arenavision.in/av15"

c = requests.get(site).cookies
c.set('beget', 'begetok')

requests.get('http://www.arenavision.in/av15', cookies=c).text # teraz powinna być już właściwa strona ;)

btw. Po więcej odsyłam do dokumentacji: http://docs.python-requests.org/en/master/user/quickstart/

Dziękuję, działa :) Idę poczytać dokumentację, żeby zrozumieć co się stało. - gregxsunday 2017-05-15 22:05
W dokumentacji są raczej techniczne rzeczy, jak dodać/ustawić ciasteczka. Natomiast fakt, że trzeba ustawić te ciasteczka wynika z komunikatu, który otrzymałeś nie mając ich ustawionych ;) - adamError 2017-05-16 06:43

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0