일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- requests 모듈
- 파이썬예제
- 네이버웹툰크롤링
- rolling retention
- 파이썬
- R기초
- 야구게임 코드
- 타자연습파이썬
- classic retention
- range retention
- java
- 웹크롤링
- 프로그래머스 풀이
- Python
- 조건인덱싱
- 데이터프레임조회
- 특정값 추출
- 파이썬 야구게임
- R
- 데이터프레임 정보 조회
- pandas
- 구구단
- 웹크롤링 예제
- 문자열함수
- 피처벡터화
- 함컴타자연습
- 웹크롤링 실습
- R실습
- 문자열reverse
- r연습문제
- Today
- Total
서비스 기획자의 성장기록
[웹 크롤링/데이터 수집] Request 모듈로 원하는 데이터 불러오기 본문
웹에서 원하는 데이터를 추출하기 위해서는 일단 웹 페이지의 정보를 불러와야한다.
이때 사용되는 패키지가 requests 모듈의 get() 함수이다.
1. 기본 형식
- url: 데이터를 가지고 오고 싶은 웹의 url
- params: Query string을 전달하는 변수
구글에서 python을 검색하면 해당 url은 google.com/search?q=python 로 표기된다.
이 때 ? 뒤에 들어가는 q=python 형식의 문자열이 query string에 해당한다.
이를 params 객체로 전달할 때는 {"q":"python"} 과 같이 딕셔너리 형태로 전달한다.
- **kwargs: 그 외의 매개변수를 전달하는 값; 요청 메세지에서 header에 포함되는 값
2. 실습
네이버 검색엔진에서 'python'을 검색한 결과를 가져와 보자.
response.status_code로 응답 코드를 받는다. (200이면 성공!)그리고 response.text로 불러온 웹 페이지의 html 텍스트를 출력한다.
실행 결과:
3. Header에 user-agent 값 넣어서 보내기
직접적인 url 주소로 웹사이트에 접근하면 웹사이트에서 웹크롤링을 통해서 접근한 것을 감지해 접속을 차단할 수 있다.
그래서 로봇이 아님🤖 을 나타내기 위해 요청을 보낼 때 header에 user-agent 값을 넣어서 보낸다.
User-agent 값을 넣어서 보내면 웹 브라우저를 통해 요청을 보내는 것으로 인식하기 때문에 원활하게 접속할 수 있다!
User-agent 값 얻는 법
1) 웹 브라우저 접속 - fn+f12 (맥)로 개발자 모드 접속
2) 상단 Console 탭 - 콘솔창에 navigator.userAgent 입력
청록색으로 나온 부분이 내가 사용하는 user-agent 값이다. 이것을 복사해서
User-agent 넣어서 웹페이지 불러오기
headers 딕셔너리에 'user-agent' 키의 value 값으로 넣어준다.
requests.get() 함수에 params (cat photo를 검색어로 주었다🐱) 와 headers 키워드 변수를 넣어준 후,
해당 response 값을 text로 변환하여 (html) <search_result2.html>이라는 파일명으로 저장해 주었다.
이렇게 현재 디렉토리에 파일이 생기는데 해당 파일을 열면
구글에서 'cat photo'를 검색한 결과 페이지가 열린다!
끗!
'웹 크롤링 > 데이터 수집 (Python)' 카테고리의 다른 글
[웹크롤링] 유용한 스크립트 모음 (0) | 2023.11.02 |
---|---|
[웹크롤링/데이터 수집] 네이버 웹툰에서 요일별 웹툰 목록 가져오기 (0) | 2023.11.02 |
[웹 크롤링/데이터수집] 언론사별 랭킹 뉴스 추출하기 (0) | 2023.11.02 |