웹크롤러는 웹사이트에서 데이터를 가져와서 자동으로 정리/저장해주는 프로그램을 말한다
[웹크롤러 라이브러리 가져오기]
- 우선 터미널에서 pip install requests, pip install bs4 를 통해 requests, bs4 라이브러리를 다운로드한다
-requests : 웹사이트 접속을 도와주는 라이브러리
-bs4, BeautifulSoup: 파이썬으로 html 웹문서 분석을 도와주는 라이브러리
[데이터 가져오기]
- requests에 있는 get함수를 통해 데이터를 가져온다
- 그 링크(웹페이지) 정보를 데이터라는 변수 안에 저장한다
- print(데이터) : 다음의 결과로 response[200]이 나오면 웹페이지에서 데이터를 잘 가져왔다는 의미
- 데이터.content : 그 웹사이트에 저장된 모든 정보의 html 데이터를 의미 , print하면 html내용이 출력된다
- print(데이터.status_code) : 출력결과로 200이 나오는 경우 웹페이지에 제대로 접속됨을 의미, 400이나 500이 나오는 경우 접속이 잘 안된것을 의미
- html 정보를 예쁘게 정리하는 것
- soup = 링크 웹페이지에 존재하는 html 전부를 담은 변수 (정리해서) ,통상적으로 soup라는 변수명으로 많이 이용됨
- html 정보에 백슬래시가 포함되어 있는경우 백슬래시를 없애주는 방법
- replace함수는 text형태의 데이터를 바꿔준다 --> 따라서 data.replace를 할 경우 오류, data는 html형태 이므로 data.text를 통해서 문자형태로 바꿔준 후 replace를 사용해야 함
[원하는 데이터 찾기]
- find_all( '태그명' , '속성명' ) 을 통해 정보를 찾아냄 : strong 태그에 idrk _nowVal인 정보를 찾으라는 뜻
- find_all 함수는 찾은 정보의 결과를 리스트 형식으로 리턴한다
- 속성명을 id가 아닌 class로 차는 경우 class_ 라고 해서 찾아야 한다, class 명이 띄어쓰기로 여러개 존재하는 경우
그 중 하나만 골라서 사용한다
- id는 html당 하나만 존재하고 (유니크함), class 같은 경우 동일 class를 다수의 html이 쓰기도 한다.
- class명으로 정보를 찾는경우 리스트의 인덱싱을 통해 정보를 찾아낸다
- .text를 통해서 리스트 속에 원하는 글자 정보만을 가져올 수 있다.
- 글자가 해체되어 있는 경우 상위 클래스를 불러오면 된다
[select 함수] --> find_all 함수와 비슷한 역할
- soup.select( '.f_down' ) : class명이 f_down인 것을 찾는다
- soup.select( 'strong' ) : strong 태그를 찾는다
- soup.select( 'strong#tah' ) : strong 태그 이면서 id가 tah인 것을 찾는다
- soup.select( '.f_down em') : class가 f_down 인 것 안에서 태그가 em인 것을 찾는다
- 태그 속 내부요소를 찾으려면 띄어쓰기를 한다
- select함수도 마찬가지로 리스트로 값을 반환한다
[이미지 가져오기]
-이미지가 저장되어있는 주소는 src 안에 있다
[블로그 주소 가져오기]
-href 태그 안에 블로그 주소가 들어있음
'파이썬 공부 정리' 카테고리의 다른 글
무한스크롤 데이터 수집 (0) | 2022.02.05 |
---|---|
함수 (0) | 2022.01.29 |
웹서버 관련 (0) | 2022.01.26 |
파일 읽고 쓰기 - read, write (0) | 2022.01.23 |
if 조건문 (0) | 2022.01.23 |