파이썬의 urllib를 사용하여 헤더를 어떻게 설정합니까?


80

나는 파이썬의 urllib에 꽤 익숙합니다. 내가해야 할 일은 서버로 전송되는 요청에 대한 사용자 지정 헤더를 설정하는 것입니다. 특히 Content-type 및 Authorizations 헤더를 설정해야합니다. 파이썬 문서를 조사했지만 찾을 수 없었습니다.

답변:


94

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()

88

Python 3과 Python 2 모두 다음과 같이 작동합니다.

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

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

print(content)

q.add_header ( 'apikey', 'xxx') 요청에 대해 동일한 작업을 수행 할 수 있습니까?
user3378649

@ user3378649 님, 무슨 뜻입니까?
Cees Timmerman

2
@ user3378649는 사용을 의미 할 수있다 requests파이썬 패키지 사용자 정의 헤더
WeizhongTu

1
이 대답-천 번 예 (감사합니다!). 나는 파이썬 2와 3 (urllib, urllib2 및 urllib3 사이)의 공통 인터페이스를 찾으려고 몇 시간 동안 고생했습니다.
베 오른 해리스

19

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()

테스트되지 않은 ....


2

여러 헤더의 경우 다음과 같이하십시오.

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()
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.