항해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은 하나만 가져오는것이다