Recent Changes - Search:

Oktatás

* Programozás 2
  + feladatsor
  + C feladatsor
  + Python feladatsor
  + GitHub oldal

* Szkriptnyelvek
  + feladatsor
  + quick link

* levelezősök
  + Adator. prog.
  + feladatsor
  + quick link

teaching assets


Félévek

* 2024/25/1
* archívum


Linkek

* kalendárium
   - munkaszüneti napok '20
* tételsorok
* jegyzetek
* szakdolgozat / PhD
* ösztöndíjak
* certificates
* C lang.
* C++
* C#
* Clojure
* D lang.
* Java
* Nim
* Scala


[ edit | logout ]
[ sandbox | passwd ]

Py /

20120902a

Rukkola happlista

A következő feladatot annak ajánlom, aki aktívan használja a rukkola könyvcserélő oldalt. (Aki nem tudja, hogy mi is ez, az itt olvashat utána.)

Feladat

Az aktualitásokhappolnád pont alatt megtekinthető azon könyvek listája, amiket szeretnénk megszerezni. Ennek az oldalnak az URL-je valahogy így néz ki: http://rukkola.hu/felhasznalok/<user_id>/konyvek/olvasasra_jeloltek . Írjunk egy szkriptet (web scraper-t), mely kinyeri a HTML oldalból (vagy oldalakból, ha a könyvek listája nem fér el egy oldalon) a könyvek szerzőjét és címét. A kinyert információt jelenítsük meg a standard kimeneten a köv. formában (példa):

1) Eric S. Raymond: The Art of Unix Programming (1 happolná)
2) Frank Schätzing: Raj (13 happolná)
3) Arthur C. Clarke: A végső bizonyítás (4 happolná)
4) Arthur C. Clarke: Arthur C. Clarke teljes Űrodisszeia univerzuma (21 happolná)
5) Arthur C. Clarke: Mélység (5 happolná)
...
============================================================
30) Neal Stephenson: Gyémántkor (11 happolná)
31) Kurt Vonnegut: Macskabölcső (11 happolná)
32) Roger Zelazny: A Fény Ura (9 happolná)
33) Isaac Asimov: Asimov teljes Alapítvány – Birodalom – Robot univerzuma... (15 happolná)
...rodalom__robot_univerzuma_iii_
34) Isaac Asimov: Asimov teljes Alapítvány – Birodalom – Robot univerzuma... (13 happolná)
...irodalom__robot_univerzuma_ii_

Figyeljünk a következőkre:

  • Ha sok könyvet happolnánk, akkor azok több HTML oldalon jelennek meg. Dolgozzuk fel valamennyi HTML oldalt, ezeket a kimenetben '===…' jellel válasszuk el egymástól.
  • A könyveket sorszámozzuk be.
  • A szerző és a cím mellett azt is tüntessük fel, hogy hányan happolnák az adott könyvet.
  • Ha a cím túl hosszú, akkor a rukkola levágja a cím végét (lásd az utolsó két példát). Ebben az esetben írassuk ki a könyvre mutató link utolsó 30 karakterét is, ez alapján ui. ki tudjuk találni a könyv teljes címét.

Segítség

HTML oldalakban lévő adatok kinyerésére használjuk a BeautifulSoup Python könyvtárat. Ubuntu alatt a "sudo pip install beautifulsoup" paranccsal tudjuk telepíteni. A HTML oldalak ilyetén való feldolgozását "web scraping"-nek hívjuk.

A BeautifulSoup mellett népszerű könyvtár még az lxml is. A BeautifulSoup használata egyszerűbb, az lxml viszont gyorsabb.

Frissítés (20121005)

A BeautifulSoup könyvtárnak már van 4-es verziója is. A 3-ast nem fejlesztik tovább, új projektekhez már a 4-est javasolják. A BS4 dokumentációja itt tekinthető meg. A feladathoz így inkább a BS4 használatát javaslom.

Cloud City

  

Blogjaim, hobbi projektjeim

* The Ubuntu Incident
* Python Adventures
* @GitHub
* heroku
* extra
* haladó Python
* YouTube listák


Debrecen | la France


[ edit ]

Edit - History - Print *** Report - Recent Changes - Search
Page last modified on 2012 October 06, 00:37