martedì 20 ottobre 2009

User Agent

Se si vuole accedere al contenuto del sorgente di una pagina web, in python, ad alto livello si possono utilizzare tranquillamente le funzioni messe a disposizione dal modulo urllib:

import urllib
URL = "http://linuxevia.blogspot.com"
source = urllib.urlopen(URL)
print source.read()

scrivera' a schermo tutto il contenuto della pagina web in oggetto.
Diverso il caso in cui la pagina da esaminare fosse la pagina dei risultati di un motore di ricerca.
Infatti, se si prova un codice del genere:

import urllib
ricerca=raw_input("search?)
URL="http://www.google.it/search?q="+ricerca
source=urllib.urlopen(URL)
print source.read()

si otterra' la lettura di una pagina con codice Forbidden permission.
Il motivo sta nel fatto, che in genere i motori di ricerca, vogliono che sia specificato lo user agent, che non e' altro se non un'etichetta riportante informazioni riguardo al tipo di browser e al sistema operativo utilizzato.
Su http://whatsmyuseragent.com/ si puo' avere questa e altre informazioni.
Il codice allora va modificato utilizzando, prima dell'apertura della pagina, una richiesta di accesso passandogli i dati necessari:

import urllib2

ricerca=raw_input("search?")
url = "http://www.google.it/search?q="+ricerca
ua = "Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11"
header = {'User-Agent': ua,}
req = urllib2.Request (url, None, header)
res = urllib2.urlopen (req)
print res.read()

header e' un dizionario in cui viene assegnato l'identificativo contenuto in ua, all'etichetta User-Agent.
Come secondo parametro, che in questo caso e' stato impostato a None, si puo' passare un dizionario con informazioni aggiuntive.

Nessun commento:

Posta un commento

Related Posts Plugin for WordPress, Blogger...