2009-04-17 4 views
7

Ich habe das folgende Python-Skript und ich möchte "gefälschte" Header-Informationen zusammen, so dass meine Anwendung als ob es Firefox ist. Wie könnte ich das tun?Senden Header in Python

import urllib, urllib2, cookielib 

username = '****' 

password = '****' 

login_user = urllib.urlencode({'password' : password, 'username' : username}) 

jar = cookielib.FileCookieJar("cookies") 

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar)) 

response = opener.open("http://www.***.com") 

response = opener.open("http://www.***.com/login.php") 

response = opener.open("http://www.***.com/welcome.php", login_user) 

Antwort

6

Verwenden Sie die addheaders() Funktion auf Ihrem Objekt opener.
Fügen Sie einfach diese eine Zeile, nachdem Sie Ihren Opener erstellen, bevor Sie öffnen Seiten starten:

opener.addheaders = [('User-agent', 'Mozilla/5.0')] 

http://docs.python.org/library/urllib2.html (es ist am Ende dieses Dokuments)

5

Sie müssen ein bisschen mehr Low-Level, um das zu können.

request = urllib2.Request('http://stackoverflow.com') 
request.add_header('User-Agent', 'FIREFOX LOL') 
opener = urllib2.build_opener() 
data = opener.open(request).read() 
print data 

Nicht getestet.

1

FWIW, auf nur je nachdem, wie genau wollen Sie Firefox nachahmen, die Einstellung des User-Agent ist möglicherweise nicht genug (obwohl das für die meisten Fälle wahrscheinlich ausreichend ist). Damit Ihr Skript wie "normales" Surfen im Internet aussieht, sollten Sie einen geeigneten Referer einrichten und zusätzliche Anforderungen für den Rest des Seiteninhalts stellen (Javascript/CSS/Bilder/Flash/etc). Etwas, worüber man etwas sagen sollte, obwohl es vielleicht nicht für Ihre spezielle Situation geeignet ist.