안 쓰던 블로그

파이썬 beautifulsoup 네이버 웹툰 요일별로 크롤링하기 본문

언어/파이썬

파이썬 beautifulsoup 네이버 웹툰 요일별로 크롤링하기

proqk 2020. 9. 28. 17:12
반응형

파이썬 크롤링 시리즈

네이버 웹툰 이미지 크롤링, 저장하기: foxtrotin.tistory.com/173

셀레니움으로 웹 게임 자동 매크로 만들기: foxtrotin.tistory.com/179

네이버 실시간 검색어 가져오기: foxtrotin.tistory.com/267

네이버 웹툰 요일별 크롤링: 현재글

 

 


네이버 웹툰 요일별 웹툰 리스트를 크롤링하는 프로그램

 

크롤링 전에 다음 모듈이 설치되어야 한다

beautifulsoup 설치: foxtrotin.tistory.com/173

크롬 드라이버 설치: foxtrotin.tistory.com/179

 

1. 홈페이지의 구조 확인하기

크롤링을 위해서 두 가지 정보가 필요하다

1) 각 요일 별 전체 웹툰 제목들

2) 요일 별 웹툰 제목들

 

각 요일 별 전체 웹툰 정보는 div class="col_inner"에 li태그들로 묶여 있다

요일 별로 하나씩 있는 col_inner를 총 7개 가져올 것이다

 

제목 정보는 li태그 안에 a태그, title에 있다

 

2. 정보 크롤링

daily_list=soup.findAll('div',{'class':'col_inner'})

먼저 요일 별 전체 웹툰 정보는 이렇게 가져올 수 있다

 

titles=daily_list[day].findAll('a', {'class': 'title'})

타이틀 정보는 이렇게 가져온다

위에서 가져온 daily_list안에서 각 요일 별로 a태그 안에 title=""에 모든 문자열을 가져온다

 

3. 리스트 출력

from bs4 import BeautifulSoup
import urllib.request

html = urllib.request.urlopen("https://comic.naver.com/webtoon/weekday.nhn")
soup = BeautifulSoup(html.read(),"html.parser") #웹 페이지 파싱
html.close() #닫기

def getkeyword():
    daily_list=soup.findAll('div',{'class':'col_inner'})
    week=['월요웹툰', '화요웹툰', '수요웹툰', '목요웹툰', '금요웹툰', '토요웹툰', '일요웹툰']
    
    for day in range(len(daily_list)):
        print("["+week[day]+"]")
        titles=daily_list[day].findAll('a', {'class': 'title'})
        titles_txt = [t.text for t in titles]
        
        index=1
        for i in titles:
            data = str(index)+". "+i.get_text()
            print(data)
            index+=1
        print("\n\n=======================\n\n")

getkeyword()

각 요일 이름을 담은 리스트를 만들어서 같이 출력해 주었다

 

 

 

반응형
Comments