Pobrać URL do zawartości pobieranego pliku

0

Na stronie https://ivo.gascade.biz/ivo/capacities?9
po ustawieniu tak jak na rysunku:
title
i kliknięciu download pobiera się plik csv.

Jak przechwycić url do tego pliku tak by wywoływać sobie ten URL w pythonie i zapisywać, gdzie mi się podoba?
Wg narzędzi przeglądarkowych po kliknięciu download idzie metoda GET na https://ivo.gascade.biz/ivo/capacities?reportparameterselect_hf_0=&9-2.IFormSubmitListener-form=&netpoint=6800&flowDirection=EXIT&from=08%2F05%2F2019&to=06%2F05%2F2021&fileType=1&download=Download

ale jak próbuję pobrać zawrtość tego URL to dostaję jakieś śmieci htmlowe...

co ciekawe jak chcę pobrać html strony https://ivo.gascade.biz/ivo/capacities?9 to dostaję `` czyli nic.

0

Masz chrome i developer tools? Moze tak cos...

0

Ehhh Panowie co raz więcej amatorów się pcha, mam nadzieje że przejdzie ta ustawa :P

Jakie przechwycanie URL chcesz robić skoro GET leci z normalnymi query params

https://ivo.gascade.biz/ivo/capacities?reportparameterselect_hf_0=&0-2.IFormSubmitListener-form=&reportparameterselect_hf_0=&9-2.IFormSubmitListener-form=&netpoint=6800&flowDirection=EXIT&from=08%2F05%2F2019&to=06%2F05%2F2021&fileType=1&download=Download&netpoint=6800&flowDirection=EXIT&from=08%2F05%2F2019%3B&to=06%2F05%2F2021%3B&fileType=1&download=Download

Ogarnij wszystkie paramsy co do czego i mozesz sobie sam tego URL przecież generować i robić niezależnego requesta ;)

///edit
przykładowo:
fileType=1 - plik w formacie CSV
fileType=0 - excel (porażka z tym przypisaniem 0, ale już nie będę komentował)

0

to weź użyj tego url żeby pobrać plik, bo chyba nie wiesz o co mi chodzi.

W pythonie może coś chrzanię:

import wget
url = "https://ivo.gascade.biz/ivo/capacities?reportparameterselect_hf_0=&0-2.IFormSubmitListener-form=&reportparameterselect_hf_0=&9-2.IFormSubmitListener-form=&netpoint=6800&flowDirection=EXIT&from=08%2F05%2F2019&to=06%2F05%2F2021&fileType=1&download=Download&netpoint=6800&flowDirection=EXIT&from=08%2F05%2F2019%3B&to=06%2F05%2F2021%3B&fileType=1&download=Download"
wget.download(url, 'myfile.csv')

napiszę też w R:

url <- "https://ivo.gascade.biz/ivo/capacities?reportparameterselect_hf_0=&0-2.IFormSubmitListener-form=&reportparameterselect_hf_0=&9-2.IFormSubmitListener-form=&netpoint=6800&flowDirection=EXIT&from=08%2F05%2F2019&to=06%2F05%2F2021&fileType=1&download=Download&netpoint=6800&flowDirection=EXIT&from=08%2F05%2F2019%3B&to=06%2F05%2F2021%3B&fileType=1&download=Download"
download.file(url, dest.file="myfile.csv")

otrzymany w ten sposób csv zawiera śmieci htmlowe, a nie ten plik który pobiera się z downloadem.

0

@Julian_: Wrzucam tutaj screena, bo coś mnie kłamiesz... ten url wyżej co wrzuciłem zwraca normalnie w przeglądarce validny plik CSV do ściągnięcia.

lololo

0
cmd napisał(a):

@Julian_: Wrzucam tutaj screena, bo coś mnie kłamiesz... ten url wyżej co wrzuciłem zwraca normalnie w przeglądarce validny plik CSV do ściągnięcia.

lololo

OK jest, nie zauważyłem, a jak to pythonem pobrać? Tu nie jest coś z ciasteczkami narobione?

0

@Julian_: Sorki trochę wprowadziłem Cię w błąd, faktycznie tego tak nie pobierzesz, sam URL to za mało.

1

Masz tu działający przykład z użyciem requests ;]

import requests

cookies = {
    'JSESSIONID': 'EF2E036872A64CC162E4BDBA42F458BD',
}

headers = {
    'Connection': 'keep-alive',
    'Pragma': 'no-cache',
    'Cache-Control': 'no-cache',
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.108 Safari/537.36',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
    'Referer': 'https://ivo.gascade.biz/ivo/capacities?15',
    'Accept-Encoding': 'gzip, deflate, br',
    'Accept-Language': 'pl-PL,pl;q=0.9,en-US;q=0.8,en;q=0.7',
}

params = (
    ('reportparameterselect_hf_0', ''),
    ('15-3.IFormSubmitListener-form', ''),
    ('netpoint', '2731'),
    ('flowDirection', 'ENTRY'),
    ('from', '02/05/2019'),
    ('to', '08/05/2019'),
    ('fileType', '1'),
    ('download', 'Download'),
)

response = requests.get('https://ivo.gascade.biz/ivo/capacities', headers=headers, params=params, cookies=cookies)

cookies jest wymagane, nie wiem do konca jak z headerami, przepisalem wszystkie jakie mi dev toolsy pokazują

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