코딩과 결혼합니다

웹스크래핑(크롤링) 본문

2세/Python

웹스크래핑(크롤링)

코딩러버 2023. 5. 8. 21:02
728x90

웹개발 종합반 3주차 - 웹스크래핑(크롤링)

 

 

 

 

크롤링 기본 세팅

pip install bs4  도 깔아준다.

import requests
from bs4 import BeautifulSoup

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')

 

 

 

 

 

영화의 제목들을 가져오는 작업을 해볼 것.

제목에 마우스 오른쪽클릭 - 검사

 

오른쪽 마우스 클릭 - copy - copy selector

#mainContent > div > div.box_ranking > ol > li:nth-child(1) > div > div.thumb_item > div.poster_movie > img

그럼 이렇게 복사가 된다.

 

나는 여러 영화들의 제목을 가져올 것인데,

<li>태그 안에 영화가 하나씩 들어 있는것을 볼 수 있다. 이 li를 리스트 형태로 가지고 와서 하나씩 돌면서

제목을 찾을 거임! (복사한 것의 li 뒤의 내용은 지워버린다.)

 

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

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

변수 이름은 알아보기 쉽게 text로, 그리고 제목이 들어있는 class명을 찾아 select_one('.link_txt')

이렇게 입력!

 

li 안에 select 하나만 가져오므로 select_one()을 썼다.

 

 

 

 

 

순위와 평점도 가져와 보겠습니당~

순위 class="rank_num"
평점 class="txt_grade"

for li in lis:
    title = li.select_one('.link_txt').text
    rank = li.select_one('.rank_num').text
    rate = li.select_one('.txt_grade').text
    print(rank, title, rate)

좌라란~

'2세 > Python' 카테고리의 다른 글

3주차 숙제 (웹스크래핑)  (0) 2023.05.10
mongoDB  (0) 2023.05.10
requests 라이브러리  (0) 2023.05.08
python 외부 라이브러리 사용  (0) 2023.05.08
Python(2)  (0) 2023.05.08