반응형
오늘은 GET방식과 BS4를 사용해서 크롤링을 하는 법을 배워보았습니다
네이버 메인에서 초콜릿이라고 친 url을 가지고 크롤링을 해볼것입니다
https://search.naver.com/search.naver?sm=top_hty&fbm=1&ie=utf8&query=%EC%B4%88%EC%BD%9C%EB%A6%BF
방식 :GET
대상 : https://search.naver.com/ => 호스트이름
추가적인 정보
- 경로: /search.naver
- 데이터
?sm=top_hty
&fbm=1
&ie=utf8
&query=%EC%B4%88%EC%BD%9C%EB%A6%BF(=초콜릿)
url을 분석하면 ?뒤에는 GET 파라미터로 &로 구분되고 초콜릿은 url 인코딩이 되어있습니다
403 forbidden이 뜨는 이유는 찾아보니 네이버가 웹페이지에서 요청한게 아니라 막아놓아서 그렇다고 이유를 찾았습니다
헤더를 첨부해서 넣으면 결과가 나올것이라고 생각합니다
이제 다음은 html parser와 css 선택자를 이용해서 원하는 text를 뽑아내는 것을 해볼겁니다
body 밑에 div 밑에 h1과 ul의 items 클래스 하위를 다 불러와 반복문을 통해 출력하는 코드 입니다
느낀점
네이버가 웹페이지에서 요청을 안하면 403 에러를 내는 것을 알게 되었습니다
다음에는 헤더를 조작해서 요청을 받아보는 것을 해봐야 겠다고 생각했습니다
'Language > Python' 카테고리의 다른 글
[MACHINELEARNING]TIL5 requests로 세션 쓰기와 PhantomJS + Selenium 활용 (0) | 2018.11.29 |
---|---|
[MACHINELEARNING]TIL4 네이버 금융과 뉴스 크롤링하기 (0) | 2018.11.28 |
[MachineLearning]TIL2 웹에서 데이터 가져오기 (0) | 2018.11.26 |
[MachineLearning]TIL1 Docker 설치 및 개발환경 구축 (0) | 2018.11.26 |
[크롤링]1-2 BeautifulSoup로 스크레이핑 하기 (0) | 2018.03.07 |