mercoledì 1 dicembre 2010

Nozioni di Python : modulo urllib


Ciao a tutti,
allora, non nascondo di essermi letteralmente innamorato del linguaggio Python.

Certo per ora rimane una passione "personale" non avendo purtroppo, la mia società, clienti che lo richiedono.

Volevo, un pò per me, un pò per chi invece vuole incominciare a masticare questo meraviglioso linguaggio di programmazione introdurre alcuni tips e concetti su di esso (limitatamente anche alla mia conoscenza per ora non completa).

Parlare, di dizionari, tuple e liste, non mi pare il caso visto che, almeno per chi viene da altri linguaggi di programmazione, dovrebbe averne già le tasche belle piene (:P :D).

Proprio in questi giorni, con il terremoto Wikileaks in atto, mi è venuto in mente : vediamo un pò su che server  si trova il sito (non mi aspettavo di vedere e scovare i reali server protetti dal  TOR ma solo per curiosità).

Allora per questa ed altre info che vedremo a breve, su Python esiste un modulo denominato urllib che ti permette appunto di ottenerle.

Apriamo, se ne siamo a disposizione l'idle di python (scaricabile su http://www.python.org/ gratuitamente sia per linux che win), importiamo il modulo con

import urllib

A questo punto dobbiamo riempire un oggetto (una semplice variabile) con tutti i dati di un determinato indirizzo, nel nostro caso (il sito di wikileaks)

site = urllib.urlopen('http://cablegate.wikileaks.org')

Ok a questo punto, con l'oggetto site abbiamo la possibilità di ottenere alcune info, in questo post, parlo principalmente di come tirare fuori le info sul server e come tirar fuori il codice html (della pagina iniziale chiaramente).
Memoriziamo le info o con la funzione info() o come faccio io con la proprietà headers :

info = site.headers

e stampiamo a video il risultato :
(non credo che ci siano problemi di privacy, visto che tutto il mondo sta dando la caccia ai server di Wikileaks :P , anche se poi...  in questo caso i risultati ottenuti qui non significano niente ^^)


print info


Server: Apache/2.2.16 (Debian)
Last-Modified: Thu, 01 Jan 1970 00:00:00 GMT
ETag: "9812e-7092-0"
Vary: Accept-Encoding
Content-Type: text/html; charset=UTF-8
Content-Length: 28818
Date: Wed, 01 Dec 2010 10:21:03 GMT
X-Varnish: 835810462 835629066
Age: 1046
Via: 1.1 varnish
Connection: close


Ma guarda un pò ... non dormono questi... chissà perché usano Apache su Debian ;) e non Win ... :)

E così tanto per curiosita facciamoci tirar fuori (ma ne mostro solo in parte :P ) il codice html,
leggiamo prima site, memorizzandolo in una variabile

codiceHTML= site.read()

e poi stampiamolo


print codiceHTML



<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'>
<head>
<title>Cable Viewer</title>

.....

Chiramente, è bene, aver l'abitudine, che dopo aver memorizzato in variabili quello che ci interessa, chiudere l'oggetto site con

site.close()

Sfruttando, moduli più avanti disponibili su internet a go go go ...,
si potrebbero tirar fuori dalle pagine le liste di link, il path delle immagini  presenti ecc...

Spero nel gradimento del post come sempre
ciao ciao

Nessun commento:

Posta un commento