Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Algorithm
- queue
- NumPy
- javascript
- Join
- type hint
- 코딩테스트
- Stack
- MySQL
- dataframe
- String Method
- 백준
- 데이터시각화
- 파이썬
- 알고리즘 스터디
- 프로그래머스
- 알고리즘
- pandas
- python
- 자료구조
- 알고리즘스터디
- 선그래프
- aws jupyter notebook
- 가상환경
- Selenium
- 노마드코딩
- Matplotlib
- 정보처리기사 c언어
- programmers
- openCV
Archives
- Today
- Total
조금씩 꾸준히 완성을 향해
[Python] 파이썬 크롤링 / requests, User-Agent 기본 셋팅 본문
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 값을 넘겨주면 문제가 해결된다.
'Python > Web Scraping' 카테고리의 다른 글
[selenium] Implicit Waits(암묵적대기) vs Explicit Waits(명시적대기) (0) | 2022.09.14 |
---|---|
[Python] selenium click 에러 (ElementClickInterceptedException) (0) | 2022.09.14 |
[Python] selenium 네이버 로그인 / 자동입력 방지 우회 (0) | 2022.09.14 |
[Python] BeautifulSoup 기본 사용법 정리 (0) | 2022.09.14 |