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
- 521 megtekintés
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.
- A hozzászóláshoz be kell jelentkezni
https://www.crummy.com/software/BeautifulSoup/bs4/doc/
elég kifejező és olvasható :), bár nem gui.
Pár sor..
Még gyorsabb: kérd el az oldal gazdájától..
- A hozzászóláshoz be kell jelentkezni
Nekem ez a kedvenc részem belőle: このページは日本語で利用できます
- A hozzászóláshoz be kell jelentkezni
lényeglátóként a felette levő sort is bemásolhattad volna:
This documentation has been translated into other languages by Beautiful Soup users:
- A hozzászóláshoz be kell jelentkezni
Sima sub és +1 helyett ránéztem az oldalra és utána böfögtem ide azt amit :) Bocsánat, nem láttam a kacsádat :P
- A hozzászóláshoz be kell jelentkezni
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."
- A hozzászóláshoz be kell jelentkezni
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.
- A hozzászóláshoz be kell jelentkezni
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?
- A hozzászóláshoz be kell jelentkezni
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…
- A hozzászóláshoz be kell jelentkezni
Hasonló kiegészítő a singlefile, én unmht-ról váltottam rá Firefox Quantumra váltáskor.
https://addons.mozilla.org/hu/firefox/addon/single-file/
https://github.com/gildas-lormeau/SingleFile
--
Légy derűs, tégy mindent örömmel!
- A hozzászóláshoz be kell jelentkezni
Bocsi természetesen nem titok.
https://fanfic.hu/merengo/index.php
Például ezt a 18 fejezetet https://fanfic.hu/merengo/viewstory.php?sid=126610
“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
- A hozzászóláshoz be kell jelentkezni
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?
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
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?
- A hozzászóláshoz be kell jelentkezni
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
- A hozzászóláshoz be kell jelentkezni
18 történetet én tutira pdf-be nyomtatnék onnan.
Illetve nem biztos. De lehet. :D
- A hozzászóláshoz be kell jelentkezni
su
- A hozzászóláshoz be kell jelentkezni
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;
- A hozzászóláshoz be kell jelentkezni