requests 써보기
2018년12월18일GET 요청해보기
import requests
response = requests.get('http://news.naver.com/main/home.nhn')
헤더에 커스텀 내용을 추가하고 싶을 시에는 dic형 변수를 만들어 입력해주는게 편하다.
request_headers ={
'User-Agent' : ('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 '
'(KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'),
'Referer': 'http://news.naver.com/main/home.nhn', # 뉴스홈
}
requests의 기본 User-Agent는 ‘python-requests/버전’이런 식인데, 이것을 통해 응답을 거부할 수 있기에 fake User-Agent값을 설정해 주면 좋다. fake_useragent모듈에서 UserAgent클래스를 추가한다.
from fake_useragent import UserAgent
ua = UserAgent()
ua.ie
ua.ie는 User-Agent 값을 출력하는데, 실행시킬 때마다 다른 값이 표시된다.
인자를 보내는 방법이다. requests.get 함수에 params=값을 넣어주면 된다.
get_params ={'k1':'v1','k1':'v3','k2':'v2'}
response = requests.get('http://httpbin.org/get', params=get_params)
get_params = (('k1', 'v1'), ('k1', 'v3'), ('k2', 'v2'))
response = requests.get('http://httpbin.org/get', params=get_params)
두개의 경우를 표시했는데, 전자의 경우 key k1이 두개가 있다. 이런경우에는 마지막 k1의 value가 저장된다. 후자는 배열로 [v1,v3]가 저장된다.
{
"args": {
"k1": "v3",
"k2": "v2"
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Connection": "close",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.20.0"
},
"origin": "121.190.90.190",
"url": "http://httpbin.org/get?k1=v3&k2=v2"
}
{
"args": {
"k1": [
"v1",
"v3"
],
"k2": "v2"
},
"headers": {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Connection": "close",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.20.0"
},
"origin": "121.190.90.190",
"url": "http://httpbin.org/get?k1=v1&k1=v3&k2=v2"
}
#POST 요청해보기
response = requests.post(‘http://httpbin.org/post’)