2010-01-20 9 views
6

Sto usando urllib.urlretrieve in Python per scaricare siti Web. Sebbene alcuni siti web non vogliano che li scarichi, a meno che non abbiano un referrer appropriato dal proprio sito. Qualcuno sa di un modo in cui posso impostare un referrer in una delle librerie Python o in una esterna a.impostazione URL di riferimento in python urllib.urlretrieve

risposta

3

urllib rende difficile l'invio di intestazioni arbitrarie con la richiesta; è possibile utilizzare urllib2, che consente di creare e inviare un oggetto Request con intestazioni arbitrarie (tra cui, ovviamente, il - purtroppo purtroppo scritto ;-) - Referer). Non offre urlretrieve, ma è facile da usare solo con lo urlopen e copiare il risultante oggetto simile a file sul disco se lo si desidera (direttamente o, ad esempio, tramite le funzioni shutil).

3

Inoltre, utilizzando urllib2 con build_opener si può fare questo:

import urllib2 
opener = urllib2.build_opener() 
opener.addheaders = [('Referer', 'http://www.python.org/')] 
opener.open('http://www.example.com/')