2009-04-17 48 views
7

我有以下python腳本,我想發送「假」頭信息,以便我的應用程序就像是Firefox一樣。我怎麼能這樣做?在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) 

回答

6

在您的opener對象上使用addheaders()函數。
您創建的揭幕戰之後只需添加這一條線,你就打開頁面之前:

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

http://docs.python.org/library/urllib2.html(這是在這個文件的底部)

5

你必須得到更低層次才能做到這一點。

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

未經測試。

1

FWIW,這取決於你想多麼精確模仿Firefox,設置User-Agent可能不夠(儘管這對大多數情況來說可能是足夠的)。爲了讓你的腳本看起來像'正常'的網頁瀏覽,你可能需要設置一個合適的Referer,併爲頁面的其他內容(Javascript/CSS/Images/Flash /等)提出額外的請求。關於某件事情,儘管可能不適合您的特定情況。