Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Václav Franz
Tvůrce
Avatar
Václav Franz:8.9.2021 11:28

Zdravím, po zadání klíčového slova a kliknutí na vyhledat se otevře google s výsledkem. Potřeboval bych to přepsat tak, aby se výsledek vyhledávání (1 strana) mohl uložit do souboru. Webům se jinak vůbec nevěnuji, takže ani pořádně nevím kde začít. Pokud by se nechtělo nikomu vypisovat kód, tak alespoň navést, čím to provést. Děkuji.

<html>
    <head>
        <title></title>
    </head>

    <body>
        <form method="get" action="http://www.google.com/search">
            <label>Klíčové slovo</label>
            <input type="text" size="10" name="as_q" />
            <input type="submit" value=" vyhledat " />
        </form>
    </body>
</html>

Zkusil jsem: Hledat na googlu, ale zatím bez výsledku. Nebo alespoň ne takového, abych výsledek vyhledávání mohl vložit do "save as" jako proměnnou.

Chci docílit: Potřebuji výsledek vyhledávání uložit do PC ve strukturovaném formátu.

 
Odpovědět
8.9.2021 11:28
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:8.9.2021 15:39

Kdo vi, jak to resi moderni prohlizece. Stranka google neni lokalni a muzes narazit na blokaci CORS, obsah cicich stranek nelze modifikovat ani ukladat..

Soubory se daji stahovat v php pres echo a file_get_contents . Php soubor na tvem lokalnim serveru je pak chapany jako lokalni a lze s nim v javascriptu prohlizece pracovat. A nebo ho muzes zrovna nastavit ke stahovani zmenou header().
google = php download file from url

<?php
set_time_limit(0);
$file = file_get_contents('path of your file');
file_put_contents('file.ext', $file); // ulozi na server
// nebo
echo $file; // vypise na obrazovku
// a nebo
            header('Content-Description: File Transfer');
            header('Content-Type: application/octet-stream');
            header('Content-Disposition: attachment; filename="'.basename('soubor').'"');
            header('Expires: 0');
            header('Cache-Control: must-revalidate');
            header('Pragma: public');
            header('Content-Length: ' . strlen($file));
            flush(); // Flush system output buffer
            echo $file;

?>

Php je program, ktery bezi na serveru jako sluzba a preklada php kod na cpp kod, ktery pak vykona a posle uzivateli soubor (obvykle html kod, ale i soubor jako soubor, obrazek a pod)

 
Nahoru Odpovědět
8.9.2021 15:39
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:9.9.2021 8:13

google = php html minimal download file from url file_get_contents

--- stahuj.php ---
<?php
$filename = 'test.html';
$filepath= '';
$url = "http://www.example.com/".$filename; // $url = isset($_GET['url']) ? $_GET['url'] : '';
if ($url=='') exit;
$context = stream_context_create(array('http' => array('header'=>'Connection: close')));
$content = file_get_contents($url);
$filesize = strlen($content);
header("Cache-control: private");
header("Content-type: application/force-download");
header("Content-transfer-encoding: binary\n");
header("Content-disposition: attachment; filename=\"$filename\"");
header("Content-Length: ".$filesize);
echo $content;
exit;
?>

Samozrejme je mozne pouzit jinou metodu nez file_get_contents. Treba file, read, readfile, fsock, curl...

https://www.abeautifulsite.net/…oads-in-php/
Tady je treba priklad stahovani souboru, ktery uz na serveru mas, pomoci php. Tam obsah souboru ctou pres readfile, treba. Soucasne je tam fakt naproste minimum nastaveni hlavicek header. Ale lepsi je pohlidat si i nastaveni kesovani (pragma, cache-control, expired, viz predchozi prispevek). Zminuji to v tom clanku pozdeji. Velikost souboru na tvem serveru se da zjistit i pomoci filesize.

$file = "filename.ext";

// Quick check to verify that the file exists
if (!file_exists($file)) die("File not found");

// Force the download
header("Content-Disposition: attachment; filename="" . basename($file) . """);
header("Content-Length: " . filesize($file));
header("Content-Type: application/octet-stream;");
readfile($file);
 
Nahoru Odpovědět
9.9.2021 8:13
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.