Honlap tartalmának mentése

Egy fanfiction oldalról szeretnék lementeni 1-1 jó történetet. Az url felépítése: domain.com/view.php?sid=randomszámsor&i=1 Bonyolítja a dolgot, hogy fejezetenként van feltéve és egy form-on lehet fejezetet választani. Mondjuk ez meg is könnyíti másrészről a dolgot. Az oldal forrásába belenézve ilyesmit találok:

Chapters</option><option value="view.php?sid=141667">Main page</option><option value="view.php?sid=141667&i=1">1. első fejezet</option><option value="view.php?sid=141806&i=1" selected >2. második fejezet</option><option value="view.php?sid=141949&i=1">3. harmadik fejezet</option></select> <a href="view.php?sid=141949&i=1">>></a> 

Van-e erre szrkiptesített megoldás, esetleg valami GUI linux alatt?

Köszönöm

Hozzászólások

Szia!

Ha nem titok, akkor belinkelhetnéd a konkrét oldalt is.

A magyar ember jelképe a hátrafelé nyilazás. Vakon rohanunk a semmibe, miközben a múltunkat támadjuk.

Szerkesztve: 2020. 10. 05., h – 14:32

Ha már nincs link, akkor én sem konkrétan, csak nagyjából... :)

for i in $(wget link | grep,sed,awk,megilyenek fejezetlink); do wget $i; done

"A megoldásra kell koncentrálni nem a problémára."

Csak kérdem: mindenképp fejezetre lehet csak lépni? Olyan oldal, ahol felsorolja a fejelezeteket, nincs? Csak mert illene lennie, viszont ha van, akkor annak a wget script nélkül, rekurzív módban is neki ereszthető lenne és leszipkázná az összes fejezetet.

Konkretum nelkul nem irok konkretumot, de en is kb. ugy szoktam, amik itt elhangzottak. Egyszerubb esetben wget/curl + parancssori eszkozok (grep, sed, tr es tarsai), kicsit bonyolultabb esetben python3+requests+bs4. Regebben PHP+curl-t hasznaltam utobbi helyett, de atszoktam a pythonra, mert kenyelmesebb erre (is).

A strange game. The only winning move is not to play. How about a nice game of chess?

Régen volt egy 2 kiegészítő Firefox-hoz, ami egy tisztességes MHT fájlba rakta bele az adott lapot, amit később megnyitva, mindent pont ugyanúgy vissza is állított. Mondjuk a beágyazott videók és hasonlók mint pl ZIP nem kerültek bele a csomagba sajna, de még így is pontosabb oldalmentés volt, mint bármi amit eddig valaha is próbáltam. Sajna a vebegztenzsönök korában azonban marad a screenshot a Screengrab! által.

 

MAFF:

https://en.wikipedia.org/wiki/Mozilla_Archive_Format

 

UnMHT:

https://web.archive.org/web/20170207055530/http://www.unmht.org/unmht/e…

Ott a jobbra-balra nyil a select mellett. Szoval egy sima rekurziv letolto (pl. wget) megoldja, ha nem tud masik szerzohoz atjutni (a fooldali dolgokat letiltod exclude-dal, es akkor remelhetoleg nem maszkal el mashoz).

A strange game. The only winning move is not to play. How about a nice game of chess?

Ez majdnem hibátlan.

wget -r -l2 -i story https://fanfic.hu/merengo/viewstory.php?sid=126610

Csak sajnos a hivatkozások nem működnek. Pedig létező fájlra hivatkozik. Tudnál segíteni?

“The basic tool for the manipulation of reality is the manipulation of words. If you can control the meaning of words, you can control the people who must use them.”

― Philip K. Dick

Valami miatt hulyen kezeli a url-ben a parametereket. Ugye ? utan jonnek & jellel elvalasztva, de emogott nem dinamikus oldal van, hanem a filenevbe kerul ?. Ha a url-ben levo kerdojeleket lecsereled %3f-re akkor mukodik. Biztos van a wgetnek is trukkos beallitasa erre, rengeteget tud. (vagy arra, hogy ne ? legyen a filenevben, es a linkeket is javitsa ennek megfeleloen)

A --convert-links es a --page-requisites ugy tunik keves neki, de amugy azokat is ajanlom.

A strange game. The only winning move is not to play. How about a nice game of chess?

Túrom a wget manualját, próbáltam a convert-links opciót is, de sajna nem ment. Olvasgatok még hátha találok valami jó megoldást.

“The basic tool for the manipulation of reality is the manipulation of words. If you can control the meaning of words, you can control the people who must use them.”

― Philip K. Dick

Szerkesztve: 2020. 10. 08., cs – 15:16

Hívd meg a könyv Id-jával...  index.php?id=126610
Nincs benne hiba ellenőrzés.

<?php

$domain = "https://fanfic.hu/merengo/";

$root_url = "viewstory.php?sid=".$_GET["id"]."&i=1";

$full_content = "";

function ParsePage($url, $page = 1)

{

    global $domain$full_content;

 

    $html = html_entity_decode(utf8_encode(file_get_contents($url)));

    $re = '@(viewstory[^\'">]+).>>></a>@m';

    if (preg_match($re$html$match)) {

        $next_page = $domain . $match[1];

    } else {

        $next_page = false;

    }

 

    $re = '/(?<=\/form><\/div>)(.*)/sim';

    if (preg_match_all($re$html$matches, PREG_SET_ORDER, 0)) {

        $tmp = preg_split("@<div@"$matches[0][0]);

        $content = $tmp[0];

    } else {

        $content = false;

    }

    

    $full_content .= "<!------------ PAGE ".$page." ------------>".PHP_EOL.$content;    

    if ($next_page !== false) {

        ParsePage($next_page$page++);

    }

}

 

ParsePage($domain . $root_url);

echo $full_content;