파이썬 공부 정리

웹크롤러1 : 파이썬으로 웹페이저 접속, 원하는 글자 찾기

hex2.1 2022. 1. 28. 00:39

웹크롤러는 웹사이트에서 데이터를 가져와서 자동으로 정리/저장해주는 프로그램을 말한다

 

[웹크롤러 라이브러리 가져오기]

- 우선 터미널에서 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