2010-01-20 9 views
6

Ich verwende urllib.urlretrieve in Python zum Herunterladen von Websites. Obwohl einige Websites nicht wollen, dass ich sie herunterlade, es sei denn, sie haben einen richtigen Referrer von ihrer eigenen Website. Kennt irgendjemand eine Art, wie ich einen Referrer in einer der Python-Bibliotheken oder eine externe setzen kann?Einstellung Verweis URL in Python urllib.urlretrieve

Antwort

3

urllib macht es schwierig, beliebige Header mit der Anfrage zu senden; Sie könnten urllib2 verwenden, mit dem Sie ein Request Objekt mit beliebigen Headern erstellen und senden können (einschließlich natürlich - leider leider buchstabiert ;-) - Referer). Bietet urlretrieve nicht an, aber es ist einfach, nur urlopen wie Sie mit und das resultierende dateiähnliche Objekt auf die Festplatte kopieren, wenn Sie möchten (direkt oder über shutil Funktionen).

3

auch angenommen, urllib2 mit build_opener verwenden Sie können dies tun:

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