import requests
requests.get(...) #get요청 (주로 html조회요청)
requests.post(...) #post요청 (주로 추가/수정/삭제요청)
# get과 post의 차이 :
# get은 데이터를 가져오는데 사용되고,
# post는 서버의 데이터를 수정하는데 사용된다.
requests.put(...) #put요청
requests.delete(...) #delete요청
r = requests.get(url 주소) #url주소에 데이터 요청
r.content # 응답 데이터(binary형식 내용,이미지파일 등)
r.text # 응답 데이터(텍스트형식 내용, 텍스트 파일에 씀)
r.json # 응답 데이터 JSON형태
r.url # 해당 url 반환
r.status_code # 응답 상태코드 (200 이면 성공)
r.headers # 응답 헤더의 {K:V} 형식의 딕셔너리 자료반환
r.encoding = 'utf-8' # 응답 객체에 인코딩 지정
[사용 예시]
1. 요청시 headers에 User-Agent 정보를 크롬으로 지정하여 요청
mport requests
# 요청시 헤더정보를 크롬으로 지정
request_headers = {
'User-Agent' : ('Mozilla/5.0 (Windows NT 10.0;Win64; x64)\
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98\
Safari/537.36'), }
url = "https://search.naver.com/search.naver"
response = requests.get(url,headers = request_headers)
print(response)
#해당 url 요청할 때 headers를 임의로 설정하여 요청한 케이스
2.요청시 headers에 Referer 정보를 바꾸어 웹에서 접속한 것으로 요청.
월요웹툰 페이지에서 접속한 것으로 요청하여, 웹툰 이미지 파일 가져오기
import os
import requests
image_url = 'https://image-comic.pstatic.net/webtoon/626907/237\
/20190115192015_d9f2b6e9d878a372dfa6f07ebfc5f14a_IMAG01_1.jpg'
# Referer을 지정하여 수요웹툰 복학왕 페이지를 통해서 요청
headers = {'Referer': 'https://comic.naver.com/webtoon/list.nhn?\
titleId=626907&weekday=wed'}
response = requests.get(image_url, headers = headers)
print(response) # 접속 확인 (200 = 성공)
image_data = response.content # binary형식
imgfile = os.path.basename(image_url) # url을 이름으로 하는 비어있는 데이터생성
#파일에 이미지 데이터를 넣기
with open(imgfile, 'wb') as f:
f.write(image_data)
3. 요청시 params지정을 활용한 뉴스기사 웹 크롤링
import requests
# 데이터를 요청하고자 하는 url = https://news.naver.com/main/read.nhn?\
# mode=LS2D&mid=shm&sid1=101&sid2=259&oid=009&aid=0004299807
# params를 지정하여 요청하는 것은 url뒤에 자동으로 ?와 &연산자로 묶어주는역할
url = "https://news.naver.com/main/read.nhn"
get_params = {
'mode': 'LS2D',
'mid': 'shm',
'sid1': '101',
'sid2': '259',
'oid': '029',
'aid': '0002506893'
}
r = requests.get(url,params=get_params)
print(r.text)
#해당 뉴스기사 데이터 가져오는 것 확인
댓글