항해99 부트캠프/사전교육

[항해99:사전교육](웹개발종합)3주차 python크롤링

worldint 2022. 10. 10. 18:26

파이썬 패키지  = 외부 라이브러리

 

-가상환경이란?

예를 들어 회사에서는 a,b패키지를 쓰고있는데 집에서는 그 패키지의 버젼이 달라서 문제가 생길수도 있는것을 방지하기 위해서 프로잭트별로 패키지를 모아서 쓰는것이다.

라이브러리를 모아둔것

 

-크롤링 하기위해서 필요한 패키지(라이브러리(?))

requests, BeautifulSoup

라이브러리들은 파이참에서 설정에서 인터프리터에서 왼쪽에 보면 +가 있는데 그걸 눌러서 패키지를 추가 할 수 있다.

requests 패키지는 get 메소드를 이용해서 서버에 html파일을 요청할수있다.

그렇게 가져온 html을 BeautifulSoup을 이용해서 특정 부분을 찾아서 뽑아낼때 쓰면 된다.

 

import requests  #웹서버에서 html가져오는 라이브러리 패키지
from bs4 import BeautifulSoup #html파일 분석 탐색 패키지

headers = {'Usedfr-agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'} #사람이 가져온것처럼 알려주는것
data = requests.get('https://movie.naver.com/movie/sdb/rank/rmovie.naver?sel=pnt&date=20210829',headers=headers)  #가져온 방법

soup = BeautifulSoup(data.text,'html.parser')

이게 기본 형태이다. 

get메소드 파라미터(매개변수)로 가져오고싶은 html의 url을 쓰면된다.

위에 soup안에는 전체 html문서가 다 들어있다.

 

그중에서 원하는 특정 테그등을 찾는 방법은 아래와 같다

movies = soup.select('#old_content > table > tbody > tr')

매개변수의 #뒤에꺼는 지정해준 태그 id이고 그안에 태그들을 따라가서 참조하는 형태

저렇게 가져오는 메소드는 select랑 selct_one이 있는데 차이점은 select는 #old_content > table > tbody > tr가 여러개 있는데 그걸 전부 다 가져오는것이고

select_one은 하나만 가져오는것이다