python requests & 크롤링

권슬기·2023년 4월 12일
0

python

목록 보기
4/12
post-thumbnail

beautifull soup이라는 패키지를 다운 받아야 크롤링 가능.

pip install bs4

위 코드로 설치 완료! 그럼 다음으로 넘어가기

import requests
from bs4 import BeautifulSoup

URL = "https://movie.daum.net/ranking/reservation"
headers = {'User-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(URL, headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')

위 코드가 기본 고정 코드.
url에 내가 원하는 사이트 넣으면 됨.

업로드중..

내가 원하는 정보를 가져오려면 정보 오른쪽 누르고 선택, 복사 > selector 복사 눌러서 하단 soup.select에 넣고 lis를 찍으면 정보가 가져와진다. 아래 하단 코드에서는 lis를 반복으로 돌려서 lis 안에 있는 특정한 애를 가져오는 것.

select_one, select 같은 애들은 soup에서 지정한 특정 단어들.

lis = soup.select('#mainContent > div > div.box_ranking > ol > li')

for li in lis:
    title = li.select_one('.link_txt')
    print(title.text)

위 코드를 작성하면 내가 원하는 정보를 가져올 수 있다.

위 코드로 다음 영화에서 순위 별 제목을 가져옴.

[응용] cgv 인기 영화 순위를 가져와봤다.
select에서는 text가 안 먹히고 select.one에서만 먹힌다.

import requests
from bs4 import BeautifulSoup

URL = "http://www.cgv.co.kr/movies/?lt=1&ft=0"
headers = {'User-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(URL, headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')

lis = soup.select('#contents > div.wrap-movie-chart > div.sect-movie-chart > ol > li')


for li in lis:
    titles = li.select_one('.title').text

    print(titles);

profile
병아리 프론트엔드 개발자

0개의 댓글