조금씩 꾸준히 완성을 향해

[Python] 파이썬 크롤링 / requests, User-Agent 기본 셋팅 본문

Python/Web Scraping

[Python] 파이썬 크롤링 / requests, User-Agent 기본 셋팅

all_sound 2022. 9. 13. 22:23

requests 는 웹사이트 정보를 가져올 때 쓰이는 python library이다. 웹 스크래핑/크롤링에 아주 유용하게 쓸 수 있다.

 

 

▶ 기본 세팅

import requests

res = requests.get("http://google.com")  # url 정보 저장
res.raise_for_status()  # 문제가 생겼을 경우 바로 에러를 내고 프로그램을 종료

먼저 설치 후 import 해 주고, 정보를 가져올 url를 지정해 준다. 

그리고 에러를 대비하는 코드를 추가한다. 

 

print("응답코드", res.status_code) # 200이면 정상

사실 이렇게 status_code를 찍어보면 에러가 뜨는지 안뜨는지 확인을 할 수 있다.

 

if res.status_code == requests.codes.ok:   
    print('정상입니다.')
else:
    print(f'문제가 생겼습니다.[에러코드:{res.status_code}]')

그래서 손코딩을 하자면 이런 식으로 짤 수 있는데, 이것을

res.raise_for_status()

이 한 줄로 대체할 수 있는 것이다.

 

 

이제, 제대로 작동하는지 확인하기 위해 구글 사이트의 텍스트 정보들을 파일로 저장을 해보자. 

with open("mygoogle.html", "w", encoding='utf8') as f:
    f.write(res.text)

요렇게 잘 들어와 지는 걸 확인할 수 있다. 

 

 

 

▶ User-Agent

 

크롤링을 하다 보면 간혹가다 사이트 정보를 불러오지 못하는 경우가 생긴다. 웹사이트나 API 쪽에서 보안정책으로 매크로성 요청들을 차단하는 경우가 있기 때문이다. 

 

그럴때는 User-Agent 값을 헤더로 설정하면 된다. 

 

 

'my user agent '를 검색하면 이렇게 정보가 뜨는데 이걸 복사해서 가져온다.

 

import requests

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36"}
url = "http://allsound.tistory.com"
res = requests.get(url, headers=headers)  # user agent 값 넘겨주기
res.raise_for_status()

그리고 headers에 이렇게 User-Agent 값을 넘겨주면 문제가 해결된다.