2009-04-17 33 views
7

Tôi có tập lệnh python sau và tôi muốn gửi thông tin tiêu đề "giả mạo" để ứng dụng của tôi hoạt động như thể đó là firefox. Làm thế nào tôi có thể làm điều đó?Gửi tiêu đề đi kèm trong 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) 

Trả lời

6

Sử dụng chức năng addheaders() trên đối tượng opener của bạn.
Chỉ cần thêm một dòng này sau khi bạn tạo mở của bạn, trước khi bạn bắt đầu trang đang mở:

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

http://docs.python.org/library/urllib2.html (nó ở dưới cùng của văn bản này)

5

Bạn phải có mức độ thấp hơn một chút để có thể thực hiện điều đó.

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

Không kiểm tra.

1

FWIW, tùy thuộc vào như thế nào một cách chính xác bạn muốn bắt chước Firefox, thiết lập User-Agent có thể không đủ (mặc dù điều đó có thể là đủ cho hầu hết các trường hợp). Để làm cho kịch bản của bạn trông giống như duyệt web 'bình thường', bạn có thể muốn đặt Người giới thiệu thích hợp và thực hiện các yêu cầu bổ sung cho phần còn lại của nội dung trang (Javascript/CSS/Hình ảnh/Flash/v.v.). Một cái gì đó để điều về, mặc dù có lẽ không thích hợp với tình hình cụ thể của bạn.

Các vấn đề liên quan