일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 자바
- ubuntu
- C
- 파이썬 알고리즘
- Rust
- 운영체제
- 데이터베이스
- 파이썬 챌린지
- data communication
- OS
- 러스트 프로그래밍 공식 가이드
- 오라클
- 백준 러스트
- 백준
- 알고리즘
- 자바 개념
- 파이썬
- Python challenge
- java
- 오라클DB
- 우분투
- 자바 기초
- Python
- 러스트
- 러스트 예제
- Reversing
- 데이터 통신
- Operating System
- 파이썬 첼린지
- Database
Archives
- Today
- Total
IT’s Portfolio
[Python] 파이썬 웹 크롤링으로 네이버 실시간 검색어를 파싱해보자 본문
728x90
반응형
전편인 롤 전적 크롤링 프로그램보다 간단한
그냥 존나 쉬운 네이버 실시간 검색어 크롤링 프로그램을 만들어보자.
준비물 : python, requests 라이브러리, bs4 라이브러리, 당신의 열정
import
import requests
from bs4 import BeautifulSoup
설명할 필요가 굳이 있나 싶다.
Requests와 BeautifulSoup 세팅과 변수선언
url = "https://www.naver.com/"
req = requests.get(url)
html = req.text
soup = BeautifulSoup(html, "html.parser")
RealTimeSearch = []
count = 0
네이버 실시간 검색어를 파싱할때는 굳이 헤더를 변경해줄 필요가 없다.
모바일 버전에서는 테이블 명과 클래스 명이 다르니 PC 버전에서 파싱해오도록 하자.
실시간 검색어와 기준 시간 뽑아내기
# 실시간 검색어를 뽑아내기 위한 세팅
RealTimeSearch1 = soup.find('div', {'class' : 'ah_roll_area PM_CL_realtimeKeyword_rolling'})
RealTimeSearch2 = RealTimeSearch1.find('ul', {'class' : 'ah_l'})
# 기준 시간
RealTime1 = soup.find('div', {'class' : 'ah_list PM_CL_realtimeKeyword_list_base'})
RealTime2 = RealTime1.find('div', {'class' : 'ah_info'})
RealTime = RealTime2.find('p', {'class' : 'ah_time'}).text[:-4]
# 실시간 검색어 뽑아내기
for i in RealTimeSearch2.select('span', {'class' : 'ah_k'}):
RealTimeSearch.append(i.text)
실시간 검색어를 뽑아내기 위해 세팅을 해준다.
div[class=ah_roll_area PM_CL_realtimeKeyword_rolling] 코드 안에 ul[class=ah_l] 데이터를 찾는다.
실시간 검색어를 파싱해오는 기준 시간을 크롤링한다.
div[class=aah_list PM_CL_realtimeKeyword_list_base] 코드 안에 div[class=ah_info] 코드 안에 p[class=ah_time] 데이터를 찾아 문자열로 바꾸고 끝에서부터 4글자를 뺀다.
위에 세팅해놓은 것을 바탕으로 실시간 검색어를 뽑아낸다.
ul[class=ah_l] 코드 안에 span[class=ah_k] 데이터를 모두 뽑아 RealTimeSearch 배열에 하나씩 저장한다.
실시간 검색어 출력 정리하기
print("===========================")
print("네이버 실시간 급상승 검색어")
print(RealTime)
print("===========================")
# 출력 정리하기
for i in range(0, 40):
if i%2 == 1:
count = count+1
print(str(count) + "위: " + RealTimeSearch[i].strip())
print("--------------------------")
else:
continue
실시간 검색어를 모두 뽑아 RealTimeSearch 배열에 저장할 때 순위도 배열에 저장된다.
짝수 배열에는 순위가 저장되어있고 홀수 배열에는 검색어가 저장되어있는데 for문과 if문을 통해 검색어만 뽑아낸다.
strip() 함수를 통해 공백을 제거해주고 출력해준다.
실행화면
제작 후기
줫밥
728x90
반응형
'Development Study > Python' 카테고리의 다른 글
[Python] maketrans() 함수 (0) | 2019.11.20 |
---|---|
[Python] isdecimal(), isdigit(), isnumeric() 함수에 대해서 (3) | 2019.11.05 |
[Python] 파이썬 웹 크롤링으로 롤 전적검색 프로그램을 만들어보자 (6) | 2019.11.02 |
[Python] 파이썬 웹 크롤링(Web Crawling) 간단한 기본 상식 (0) | 2019.11.02 |
파이썬(Python)을 시작하기 전에 (2) | 2019.10.17 |
Comments