Portál AbcLinuxu, 9. května 2024 05:11


Dotaz: Makro pro stahování souborů přes prohlížeč

Petr Maleček avatar 25.10.2022 10:58 Petr Maleček | skóre: 28 | Plzeň - Bolevec
Makro pro stahování souborů přes prohlížeč
Přečteno: 586×
Odpovědět | Admin
Ahoj všem,

řeším tu problém, kdy bych potřeboval makrem, které spustím třeba z konzole otevřít prohlížeš s konkrétní stránkou, na ní vyplnit 1 pole a kliknout na jedno tlačítko, které zajistí stažení souboru. Tento soubor uložit pod nějakým jménem (PDF), abych si jej pak mohl stáhnout.

Představoval bych si to jako konzolový script, kterému předám 3 parametry (jeden parametr jako součást URL, jeden parametr jako hodnota toho jednoho políčka a jeden parametr jako název výstupního souboru PDF). Existuje na to nějaká utilita? Snažil jsem se toto vyřešit pomocí PhantomJS, kdy jsem byl schopen stránku otevřít, nastavit hodnotu pole, ale ten si s danou stránkou moc nerozumí a vykreslení stránky v rámci něj není korektní (plus ignoruje nějaké javascriptové funkce, natož, abych se dostal až k samotnému stažení souboru).

Ideálně, kdyby mi na to stačil nějaký velmi "lehký" (virtuální) server, na kterém by běžel jen Debian, čistý X11 a k tomu třeba Firefox.

Díky za případné popíchnutí, kam se podívat.
LinMuck, WinFuck :-P
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Petr Maleček avatar 25.10.2022 11:05 Petr Maleček | skóre: 28 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: Makro pro stahování souborů přes prohlížeč
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak jsem našel utilitu autokey-gtk, vyzkouším to s ní. Kdybyste věděli o něčem třeba vhodnějším, tak budu rád za tipy. Díky!
LinMuck, WinFuck :-P
Jendа avatar 25.10.2022 11:34 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Makro pro stahování souborů přes prohlížeč
Odpovědět | | Sbalit | Link | Blokovat | Admin
selenium
Já to s tou denacifikací Slovenska myslel vážně.
Jendа avatar 25.10.2022 23:04 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Makro pro stahování souborů přes prohlížeč
Nevím jestli umí stahovat javascriptem generovaná PDF jak bylo zmíněno později. V nejhorším dummy X server (třeba tightvncserver kde se dá navíc přes VNC sledovat co se děje) a klikat v tom pomocí xdotool…
25.10.2022 11:51 X
Rozbalit Rozbalit vše Re: Makro pro stahování souborů přes prohlížeč
Odpovědět | | Sbalit | Link | Blokovat | Admin
Prozradis k cemu to cele ma slouzit? Priklad takove stranky? Nebo co je cely smysl tohoto cviceni?
Petr Maleček avatar 25.10.2022 12:11 Petr Maleček | skóre: 28 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: Makro pro stahování souborů přes prohlížeč
Není to cvičení. Příklad třeba zde - https://re.jrc.ec.europa.eu/pvg_tools/en/ - na této stránce vyplním koordináty LAT a LON (to lze předvyplnit parametrem lat=&lon= v url), vyberu jinou mounting position, nastavím jiný úhel (slope) a kliknu do "visualize results", pak do tlačítka PDF. Stáhne se mi PDF s reportem. Tohle potřebuji zautomatizovat. Stačí?
LinMuck, WinFuck :-P
25.10.2022 12:38 Franta
Rozbalit Rozbalit vše Re: Makro pro stahování souborů přes prohlížeč

V prohlížeči dej F12 a podívej se, co se tam posílá za HTTP požadavky. Ty pak akorát zopakuješ pomocí příkazu wget nebo curl ve skriptu.

Pokud je ten scénář složitější, tak budeš muset udělat jedno volání, z odpovědi něco vyparsovat a následně to použít v druhém volání… Na to se případně dá použít JMeter, ale většinou bude stačit ten shell + wget/curl.

Petr Maleček avatar 25.10.2022 20:23 Petr Maleček | skóre: 28 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: Makro pro stahování souborů přes prohlížeč
To mě samozřejmě napadlo jako první řešení, ale když si to vyzkoušíte, tak uvidíte, že to ajaxem odešle dva requesty a výsledek doplní do přehledu. Avšak generování PDF dělá přímo JS knihovna na stránce a PDF není jen "otisk" stránky, ale úplně odlišně vypadající obsah a formát. Nechci ten kód studovat extra podrobně, to by zabralo daleko více času, než když najdu řešení ve formě nějakého makra.
LinMuck, WinFuck :-P
xkucf03 avatar 25.10.2022 23:31 xkucf03 | skóre: 49 | blog: xkucf03
Rozbalit Rozbalit vše Re: Makro pro stahování souborů přes prohlížeč

V tom případě bude asi nejpohodlnější cesta Selenium. Pokud bys chtěl něco minimalistického ručně psaného, tak stačí pustit tu virtuálku nebo třeba jen založit druhý uživatelský účet, pustit Xephyr (nebo jiný X11 server) a do něj si posílat X11 události (pohyb myši, stisky tlačítek a kláves). X11 mají rozšíření XTEST, přes které se ty události dají simulovat – buď z C, C++, nějakého skriptovacího jazyka nebo třeba relpipe-out-x11.

Tohle samozřejmě předpokládá, že se formát té stránky nemění. Buď se budeš trefovat na konkrétní pozici na obrazovce nebo (lépe) doskáčeš na příslušná políčka nebo tlačítka pomocí tabulátoru a dalších klávesových zkratek. Pokročilejší testovací nástroje můžou i rozpoznávat, co na té stránce vidí a podle toho měnit svoje chování… ale to už mi přijde jako dost velký kanón na vrabce v tomhle případě.

Další možnost by byla nějaké rozšíření do prohlížeče – možná iMacros for Firefox (nezkoušel jsem).

Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes
Petr Maleček avatar 27.10.2022 14:15 Petr Maleček | skóre: 28 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: Makro pro stahování souborů přes prohlížeč
Díky za nápad, ta stránka je už dlouho stejná, takže zatím není problém jít formou otevření prohlížeče na konkrétní stránce, doplnění informací a vygenerování PDF (přes pozice myši). Čili prostě makrem.
LinMuck, WinFuck :-P
25.10.2022 12:49 X
Rozbalit Rozbalit vše Re: Makro pro stahování souborů přes prohlížeč
Skutecne potrebujes barevne obrazky v PDF, nebo jde hlavne o cisla? Protoze, samozrejme nejsi prvni koho to napdalo viz napr. https://github.com/pvlib/pvlib-python/blob/master/pvlib/iotools/pvgis.py.
Petr Maleček avatar 25.10.2022 20:24 Petr Maleček | skóre: 28 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: Makro pro stahování souborů přes prohlížeč
Potřebuji přímo to PDF, které stránka generuje. Čísla si stáhnout v rámci requestů samozřejmě umím. Bohužel. Potřebuji přímo to vygenerované PDF, které generuje JS knihovna přímo na webu (klientská část, ne server).
LinMuck, WinFuck :-P
26.10.2022 09:16 X
Rozbalit Rozbalit vše Re: Makro pro stahování souborů přes prohlížeč
Pokud potrebujes PDF tak je cele tvuj pozdavek nema moc smysl. Proc si proste na tu stranku nevlezes a to PDF nestahnes? Nechapu. Ze je to cizi domena? Ze to neni cesky? Ani to PDF neni cesky. Muzes prozdarit co tim vlastne sledujes? Jeste vetsi pohodlnost? Ze to pobezi u tebe?
Petr Maleček avatar 27.10.2022 14:18 Petr Maleček | skóre: 28 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: Makro pro stahování souborů přes prohlížeč
Protože to potřebuji zautomatizovat. Generujeme nabídky pro FVE a toto bychom chtěli automatizovaně přikládat jako přílohu. Čili proces generování nabídky vygeneruje nějaké PDF (s rozpisem potřebného materiálu a kalkulací) a zároveň by tento proces stáhnul PDF z těchto stránek a přiložil k výsledku. Můžu to samozřejmě dělat ručně, ale nabídka != smlouva. Čili těch kalkulací různých variant a nabídek si může potenciální zákazník vygenerovat třeba 10...
LinMuck, WinFuck :-P
27.10.2022 15:27 X
Rozbalit Rozbalit vše Re: Makro pro stahování souborů přes prohlížeč
Mas k dispozici API ,ktere vrati cisla. Vyrobit si PDF neni dneska zadny problem. Ale to se musi chtit to nakodovat. Tohle je obycejna vykradacka. Bez urazky. Sice to bude fungovat, ale takova reseni ja proste neuznavam. Kdyby to bylo pro osobni potreba tak je to mozna akceptovatelne, ale pokud v tom je byznys, tak no comment.
Petr Maleček avatar 1.11.2022 11:18 Petr Maleček | skóre: 28 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: Makro pro stahování souborů přes prohlížeč
A já neuznávám tvou potřebu něco hodnotit. Buďto poraď, jak dosáhnout výsledku (i kdyby to byl jen nějaký studentský projekt), nebo mlč. Děkuju.
LinMuck, WinFuck :-P
Petr Maleček avatar 27.10.2022 14:18 Petr Maleček | skóre: 28 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: Makro pro stahování souborů přes prohlížeč
Neřešme proč, řešme jak.
LinMuck, WinFuck :-P
27.10.2022 18:59 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: Makro pro stahování souborů přes prohlížeč
Prekrásny cost saving v dotovanom segmente zelenej energie. Je to za účelom eliminácie nákladov ktoré sa neprejaví na výslednej cene?

Rád by som videl nacenenie soláru s baterkami pre rodinný dom, hlavne položku výpočet účinnosti. A k tomu rizikový faktor ak to začne horieť. Teda či to vôbec budú hasiči oblievať aspoň penou, vodu na to nedajú.
Petr Maleček avatar 1.11.2022 11:20 Petr Maleček | skóre: 28 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: Makro pro stahování souborů přes prohlížeč
Já jsem toto téma nezakládal kvůli diskusi nad samotným produktem nebo okolnostem, které jeho provozování mohou zapřičinit. Můj dotaz zněl úplně jinak a zatím se tu jen míchá omáčka kolem, ale (krom asi jednoho - dvou věcných příspěvků) se tu neřeší samotný dotaz. Pokud tedy nemáš nic k věci (jak dosáhnout toho, co bych chtěl), tak se prosím těchto komentářů zdrž. Děkuji.
LinMuck, WinFuck :-P
1.11.2022 16:17 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše Re: Makro pro stahování souborů přes prohlížeč
V tom prípade by som smeroval danú otázku priamo na kontakt uvedený na danej stránke, a opýtal sa ako môže komerčná firma využiť API Non-Interactive Service na priamy výstup vizualizovaných dát. V prípade neziskovky by poradili len za pomoc s prekladom (lokalizáciou) danej stránky, a stačilo by tam nasmerovať človeka.
25.10.2022 21:29 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: Makro pro stahování souborů přes prohlížeč
Odpovědět | | Sbalit | Link | Blokovat | Admin
Data sa daju stiahnut.

Keď som otvoril link, tak mapy sú z openstreet.
debian.plus@protonmail.com
Petr Maleček avatar 1.11.2022 11:22 Petr Maleček | skóre: 28 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: Makro pro stahování souborů přes prohlížeč
Díky, ano, vím o tom. Já bych ovšem potřeboval stahovat přímo PDF, které generuje jejich stránka. Líbí se mi jejich zpracovaný dokument, grafy a tabulky. Osobně generování grafů na takové úrovni nezvládám a proto bych rád stáhl to, co je již k dispozici a v naprosto vyhovující formě.
LinMuck, WinFuck :-P
Josef Kufner avatar 1.11.2022 11:30 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Makro pro stahování souborů přes prohlížeč
Odpovědět | | Sbalit | Link | Blokovat | Admin
Otevři si konzoli v prohlížeči (F12), koukni na síťová spojení, klikni na to stažení PDF. Měl bys vidět, jaký HTTP dotaz to udělá. Pravým myšítkem, zkopírovat jako CURL příkaz a vlož si to do Bash scriptu a polaď parametry. Pokud to není nějak obfuskované, nebo nebude problém s přihlašováním, tak by to mělo fungovat velice snadno.

Pokud to je nějaká šílenost, tak Selenium, jak už bylo řečeno dříve.
Hello world ! Segmentation fault (core dumped)
Petr Maleček avatar 1.11.2022 12:24 Petr Maleček | skóre: 28 | Plzeň - Bolevec
Rozbalit Rozbalit vše Re: Makro pro stahování souborů přes prohlížeč
Jak už jsem psal v předchozích reakcích, tohle jsem dělal jako první. Žádný request se neprovede, spustí se pouze JS knihovna, která generuje to PDF (na klientově straně). Takže bych ji musel celou rozlklíčovat. Zatím docela zdařile buduji autokey sciprt, který tohle udělá formou makra.
LinMuck, WinFuck :-P
2.11.2022 12:15 MM
Rozbalit Rozbalit vše Re: Makro pro stahování souborů přes prohlížeč
Odpovědět | | Sbalit | Link | Blokovat | Admin
Taky můžeš zkusit balík xdotools (automatizace zadávání klávesnicí, klikání myši pod X).

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.