2011-10-28 11 views
42

मैं पाइथन के urllib के लिए काफी नया हूँ। मुझे सर्वर पर भेजे जाने वाले अनुरोध के लिए कस्टम हेडर सेट करने की आवश्यकता है। विशेष रूप से, मुझे सामग्री-प्रकार और प्राधिकरण शीर्षलेख सेट करने की आवश्यकता है। मैंने अजगर दस्तावेज में देखा है, लेकिन मैं इसे खोजने में सक्षम नहीं हूं।मैं पाइथन के urllib का उपयोग कर हेडर सेट कैसे करूं?

उत्तर

63

urllib2 का उपयोग कर HTTP हेडर जोड़ने: डॉक्स से

:

import urllib2 
req = urllib2.Request('http://www.example.com/') 
req.add_header('Referer', 'http://www.python.org/') 
resp = urllib2.urlopen(req) 
content = resp.read() 
9

urllib2 का उपयोग करें और एक अनुरोध ऑब्जेक्ट बनाएं जिसे आप urlopen पर सौंप दें। http://docs.python.org/library/urllib2.html

मैं वास्तव में अब "पुरानी" urllib का उपयोग नहीं करता हूं।

req = urllib2.Request("http://google.com", None, {'User-agent' : 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5'}) 
response = urllib2.urlopen(req).read() 

अपरीक्षित ....

41

दोनों अजगर 3 और अजगर 2 के लिए, यह काम करता है:

try: 
    from urllib.request import Request, urlopen # Python 3 
except ImportError: 
    from urllib2 import Request, urlopen # Python 2 

q = Request('http://api.company.com/items/details?country=US&language=en') 
q.add_header('apikey', 'xxx') 
a = urlopen(q).read() 

print(a) 
+0

हम अनुरोध q.add_header साथ एक ही बात कर सकते हैं ('apikey', 'xxx') – user3378649

+0

आपका क्या मतलब है, @ user3378649? –

+1

@ user3378649 का मतलब है कि आप 'अनुरोध' पायथन पैकेज [कस्टम हेडर] (http://docs.python-requests.org/en/master/user/quickstart/#custom-headers) का उपयोग कर सकते हैं – WeizhongTu

1

कई हेडर के लिए इस प्रकार कार्य करें:

import urllib2 
req = urllib2.Request('http://www.example.com/') 
req.add_header('param1', '212212') 
req.add_header('param2', '12345678') 
req.add_header('other_param1', 'sample') 
req.add_header('other_param2', 'sample1111') 
req.add_header('and_any_other_parame', 'testttt') 
resp = urllib2.urlopen(req) 
content = resp.read() 
संबंधित मुद्दे