Skip to content

Ekönyvgyár parancssorban

Laugh at perfection. It’s boring and keeps you from being done.

Van egy félkész megoldásom egy szerintem érdekes problémára, megmutatom, nektek, mert együtt úgyis okosabbak vagyunk. Az alapszituáció az, hogy a scifi.com 2000 elejétől közölt remek science fiction novellákat, amiket aztán a csatorna Syfy-ra történő átnevezésekor töröltek a honlapról. A 222 megjelent írásnak természetesen van mirrorja, innen szeretnénk letölteni mindent, lehetőleg Kindle-kompatibilis .mobi fájlként.

A megoldás eleje szerintem így néz ki:

wget http://lexal.net/scifi/scifiction/archive.html
find "originals_archive" archive.html >> teszt.txt
wget -F -B http://lexal.net/scifi/scifiction/originals -i teszt.txt -O sokscifi.html

Letöltjük az archívum oldalt, kilistázzuk belőle az originals_archive kifejezést tartalmazó sorokat, mert ezek a novellákra mutató linkek, majd ezeket a linkeket úgy töltjük le, hogy az összeset egymás után is írjuk egy jó nagy HTML fájlba. (Méret 5,6 mega, meg az apró.)

Itt jönne az a rész, ahol az ember egy jól irányzott seddel kiölné a felesleges formázást a fájlból, és ráküldené a konverterre, de nem jártam szerencsével a sedeléssel. A többi parancssoros, windowsos szövegtisztító pedig ostobának bizonyult, úgyhogy itt ki kell lépni egyelőre a parancssorból.

Csalók figyelmébe: a remek Notepad++ rendelkezik remek strip HTML opcióval, a TextFX-ben van elrejtve. A program elnyamog egy ideig a szövegen, de a végén visszaköp egy körülbelül feleakkora, tiszta anyagot, amiből már csak a felesleges üres sorokat kell törölni. Ide még kell a html-body-head hármas, mert anélkül nem eszi meg a kindlegen, majd..

Ha elmentettük a felesleges formázásformázástól megtisztított fájlt, akkor már csak a .mobi-vá alakítás van hátra, a megint nagyon egyszerű:

kindlegen sokscifi_tiszta.html -c2 -o sokscifi.mobi

Az eljáráson számtalan helyen lehet javítani, kezdetnek például jól festene, ha az egész egy .bat fájlba kerülne, ha már a más honlapjáról összeollózott novellákat nem illendő megosztani az elkészült mobival. Aztán persze lehet csinosítani a könyv belsején, megkeresni a címet azonosító kódokat, és azt meghagyni. Falura mindenesetre jó ez is, városon meg úgyse nézik.

Felhasznált szakirodalom szoftverek:

7 Comments

  1. szaboat wrote:

    Bevallom imadom az ilyeneket. En rogton rubyhoz nyulok ilyenkor. Amivel szerintem tok jol meg lehetne meg csinalni az readability bookmarklet szerver oldali megvalositasa. Probalja egy oldalrol csak a lenyeget kiszedni egy pontozasos rendszert hasznalva (leginkabb css osztalyokra tamaszkodik).

    https://github.com/sspinc/readability

    ami meg eszembe jutott masik megoldas az valami text based browser (w3m, lynx) igy legalabb nem kell a karacsonyi kivansaglistara felvenni a Mastering Regular Expressions c. konyvet ;)

    Tuesday, November 16, 2010 at 22:47 | Permalink
  2. Ami azt illeti, én is remekül elszórakoztam, amikor még az ‘egyáltalán hogyan catolunk windowsban’ résznél jártam. :) A regexpek az a rész, ahol végleg elveszem. (Vázlat közben: http://worldshots.hu/wp-content//2010/11/kep_16002.jpg )

    De legalább ketten adtak már megoldásokat a sed kikerülésére, szóval a végén csak össze fog állni. :)

    Tuesday, November 16, 2010 at 22:55 | Permalink
  3. serif wrote:

    Ez egy 2000-ben készült oldal, még a table volt a menő, css-t pedig csak mutatóba raktak az oldal elejébe inline. Több irányból is meg lehet támadni a feladatot, én a nagykalapácsos módszert választottam végül, php + regexp, ez állt kézre, így volt meg leghamarabb (ha nagyon nem tudok majd aludni, esetleg leporolom az XSLT tudásom, és azzal is nekimegyek :)

    A script elérhető itt: http://dl.dropbox.com/u/2190895/dev/scifi-parser.php

    Itt pedig egy példa:

    forrás: http://lexal.net/scifi/scifiction/originals/originals_archive/tidhar/index.html

    kimenet: http://dl.dropbox.com/u/2190895/dev/Lavie%20Tidhar%20-%20The%20Dope%20Fiend.html

    Wednesday, November 17, 2010 at 00:31 | Permalink
  4. serif wrote:

    Apropó parancssor és ebook készítés, az megvan, hogy a Calibre telepít commandline dolgokat is, ha szépen megkéred rá (valahol a beállításai között van eldugva)? Érdekes lehet pl az ebook-convert, vagy az ebook-meta. Gyorsnak így se gyors, de legalább nem hányod el magad a GUItól.

    Wednesday, November 17, 2010 at 00:43 | Permalink
  5. Komaváry wrote:

    Apróság: a classics_archive novellák így kimaradnak.

    (Most pedig megpróbálom megérteni, miről beszéltek, mert azt már látom, hogy hasznos lesz. )

    Wednesday, November 17, 2010 at 04:55 | Permalink
  6. Igen, a classics-hoz át kell írni a find-os részt, mert más címen vannak a novellák. Az “originals_archive” helyére ez megy: “classics_archive”.

    És amúgy gondolatkísérlet zajlik, néhány gyakorlati megvalósítással.:)

    Wednesday, November 17, 2010 at 08:13 | Permalink
  7. Gazs wrote:

    Vaaaagy… BeautifulSouppal is lehet:

    https://gist.github.com/703151

    Wednesday, November 17, 2010 at 09:49 | Permalink