Se afișează postările cu eticheta Tema 2. Afișați toate postările
Se afișează postările cu eticheta Tema 2. Afișați toate postările

luni, 19 noiembrie 2007

Hints tema 2


Tema 2 la interfete evoluate se pare ca a ridicat destule probleme. Eu am ales folosirea limbajului Python impreuna cu pachetul MySQLdb. Am reusit astfel in mai putin de 100 de linii de cod sa parsez informatii de pe site-ul www.hi5.com si sa le adaug intr-o baza de date.
Partea de parsare am realizat-o cu SGMLparser. Deoarece datele de pe hi5.com sunt publice am scapat de bataia de cap cu problemele de logare. Apoi am extras top friends si persoanele care au dat comentarii la profil.
Pachetul MySQLdb il puteti gasi la adresa http://sourceforge.net/projects/mysql-python . Utlizarea lui este deosebit de simpla.
Trebuie mai intai sa importati pachetul folosind linia import mysqldb

Conectarea la baza de date se realizeaza in felul urmator database=MySQLdb.connect(host="numehost",user="userid",passwd="parola",db="baza voastra de date"). Ramane problema unui server MySQL, pentru aceasta va recomand site-ul www.zendurl.com, unde va puteti crea un cont in cateva secunde, si marea facilitate este ca va permite accesul remote la baza de date mysql. Trebuie doar sa stiti ca numele hostului este mysql.zendurl.com,deoarece lucrul acesta nu este precizat pe site-ul lor.

Interogarea bazei de date se face creand mai intai un cursor cursor = database.cursor() , iar interogarea se face astfel cusor.execute("SELECT * FROM baza de date") sau orice comanda de genul.

luni, 5 noiembrie 2007

A aparut tema 2 la Interfete evoluate

Tema 2 este destul de interesanta,ni se cere sa cream un mic crawler si sa analizam un anumit domeniu, stabilind relatiile ce exista intre useri.

Enuntul temei este urmatorul:

Pe internet exista un mare numar de comunitati online. Prin comunitate pe internet intelegem o multime de oameni ce efectueaza o activitate impreuna (scriu mesaje pe un forum, joaca un joc multiplayer, etc.). Pe baza acestor activitati se formeaza retele sociale – grafuri de mari dimensiuni ale relatiilor online dintre membrii comunitatii. Pentru a extrage un astfel de graf dintr-o aplicatie online metoda uzuala este de a scrie un program care analizeaza paginile web ale site-ului comunitatii si extrage datele referitoare la colaborarile dintre persoane. Acest program trebuie sa-l faceti voi ca temaJ

Aplicatia se bazeaza pe urmatoarele proprietati ale acestor site-uri:

* Paginile site-ului sunt generate dinamic => toate vor avea aceeasi structura.
* Cea mai mare parte a linkurilor din aceste pagini duc tot in pagini ale site-ului.




Din aceste proprietati rezulta ca este suficient sa se scrie un script/clasa/functie care sa analizeze o pagina HTML si sa se aplice aceasta functie pe toate linkurile din interiorul site-ului.

Datele extrase din site-ul web vor fi salvate intr-o baza de date ce va avea urmatoarea structura:


model relational

In tabelul utilizator se salveaza datele despre un anumit utilizator (linkul catre profilul sau de pe site si username-ul – daca exista)

In tabelul colaborare se salveaza toate instantele de colaborari dintre 2 utilizatori, tipul colaborarii (pot fi mai multe tipuri in functie de tipul comunitatii – de exemplu pentru o comunitate unde se joaca un joc online pot fi urmatoarele tipuri de relatii – A joaca impotriva lui B, A joaca in echipa cu B, A ii da reply lui B pe forumul jocului, etc.), detalii colaborare – in functie de tipul comunitatii pot sa fie rezultatul jocului, mesajul schimbat, etc.

Exemple de comunitati online ce pot fi analizate:

* Bloguri gazduite pe acelasi server (blogspot.com, wordpress.com, etc)
* Forumuri (forumuri bazate pe phpbb, vBulletin, etc)
* Jocuri online (hattrick.org, online.bridgebase.com/myhands, etc., sah sau pool de pe yahoo games)

Aplicatia poate fi realizata intr-un limbaj la alegere. Prima etapa a temei consta in a posta in forumul destinat temei (pana marti 06.11) a alegerii comunitatii facute (pentru a fi validata) si a descrierii tipurilor de interactiuni ce vor fi extrase.

Observatie1: membrii aceleiasi echipe de proiect nu au voie sa-si aleaga aceeasi comunitate pentru analiza.

Observatie2: Tema va va permite sa invatati urmatoarele lucruri

· Scrierea/utilizarea unui mic crawler web

· Analiza unui document formatat (SGML/XML) si prelucrarea datelor din acesta folosind metodele descrise la laborator