파이썬을 이용하여 네이버 실시간 급상승검색어 가져오기

2021. 1. 27. 17:43·Python
반응형

Beautiful Soup과 Selenium을 실습하기 위하여 네이버 실시간 급상승 검색어 가져오기를 해보겠다.

span태그 class는 "keyword"로 되어있어 이 정보를 바탕으로 soup으로 가져오면 될것 같았다.

 

import requests
from bs4 import BeautifulSoup

url = "https://www.naver.com"
res = requests.get(url)
soup = BeautifulSoup(res.text, "lxml")
list =[]
naver_lists = soup.find_all("span", attrs={"class" : "keyword"})
for naver_text in naver_lists:
    list.append(naver_text.get_text())
    
print(list)
print(len(list))

 

왜 못가져오는지 보기위해 html로 열어보았다.

import requests
from bs4 import BeautifulSoup

url = "https://www.naver.com"
res = requests.get(url)
soup = BeautifulSoup(res.text, "lxml")
list =[]
naver_lists = soup.find_all("span", attrs={"class" : "keyword"})
for naver_text in naver_lists:
    list.append(naver_text.get_text())

print(list)
print(len(list))

with open("naver.html", "w", encoding="utf8") as f:
    f.write(soup.prettify())

택배 파업이라는걸 찾아봤더니 "결과 없음"이 출력되는걸 볼 수있다.

 

selenium을 써서 좀더 자세히 확인해보기위하여 네이버를 켰더니....

초기 설정값이 필요하다.

이슈별 묶어보기, 이벤트-할인, 시사, 엔터,  스포츠, 나이를 입력해주고 설정완료를 눌러야 검색어를 볼 수있다.

 

import requests
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from bs4 import BeautifulSoup

browser = webdriver.Chrome()
browser.get("https://www.naver.com")

time.sleep(0.5)
browser.find_element_by_xpath("//*[@id='NM_RTK_ROLLING_WRAP']/a").click()
time.sleep(0.5)
browser.find_element_by_xpath("//*[@id='NM_RTK_VIEW_filter_wrap']/li[1]/div/a[1]").click()
time.sleep(0.5)
browser.find_element_by_xpath("//*[@id='NM_RTK_VIEW_filter_wrap']/li[2]/div/a[1]").click()

초기값 설정하는 도중 xpath로 가져오는데 //*[@id='NM_RTK_VIEW_filter_wrap']/li[1]/div/a[1] li부분만 5까지 바꿔주면될것같다,

귀찮으니 반복문을 써서 돌리자.

 

import requests
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from bs4 import BeautifulSoup

browser = webdriver.Chrome()
browser.get("https://www.naver.com")

time.sleep(0.5)
browser.find_element_by_xpath("//*[@id='NM_RTK_ROLLING_WRAP']/a").click()

for i in range(1,6):
    browser.find_element_by_xpath("//*[@id='NM_RTK_VIEW_filter_wrap']/li["+str(i)+"]/div/a[1]").click()
    time.sleep(0.5)
    
browser.find_element_by_xpath("//*[@id='NM_RKT_VIEW_filter_age_wrap']/li[2]/a").click()
browser.find_element_by_xpath("//*[@id='NM_RTK_VIEW_set_btn']").click()

코드 실행결과

 

이제 여기서 데이터를 뽑아와야될것같다.

import requests
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from bs4 import BeautifulSoup

browser = webdriver.Chrome()
browser.get("https://www.naver.com")

time.sleep(0.5)
browser.find_element_by_xpath("//*[@id='NM_RTK_ROLLING_WRAP']/a").click()

for i in range(1,6):
    browser.find_element_by_xpath("//*[@id='NM_RTK_VIEW_filter_wrap']/li["+str(i)+"]/div/a[1]").click()
    time.sleep(0.5)
    
browser.find_element_by_xpath("//*[@id='NM_RKT_VIEW_filter_age_wrap']/li[2]/a").click()
browser.find_element_by_xpath("//*[@id='NM_RTK_VIEW_set_btn']").click()
time.sleep(2)

soup = BeautifulSoup(browser.page_source,"lxml")
list =[]
naver_lists = soup.find_all("span", attrs={"class" : "keyword"})
for naver_text in naver_lists:
    list.append(naver_text.get_text())

print(list)

잘 파싱하는것을 볼 수 있다.

네이버 실시간검색어 초기값이 미리 설정되어 있어서 삽질좀했다.

반응형

'Python' 카테고리의 다른 글

파이썬으로 웹 크롤링하기 (Selenium 이용)  (0) 2021.01.27
파이썬으로 웹 크롤링하기 (BeautifulSoup 사용)  (0) 2021.01.27
Blind SQL Injection code form  (0) 2021.01.26
파이썬 정규식 (RegEx)  (0) 2021.01.17
enumerate와 list comprehension  (0) 2021.01.12
'Python' 카테고리의 다른 글
  • 파이썬으로 웹 크롤링하기 (Selenium 이용)
  • 파이썬으로 웹 크롤링하기 (BeautifulSoup 사용)
  • Blind SQL Injection code form
  • 파이썬 정규식 (RegEx)
Penguin Dev
Penguin Dev
What does the Penguin say?
    글쓰기 관리
  • Penguin Dev
    Pengha!
    Penguin Dev
  • 전체
    오늘
    어제
    • 분류 전체보기 (152)
      • Java & Spring (5)
      • System Hacking (4)
      • Algorithm (8)
        • Sorting algorithm (3)
      • Python (6)
      • Web (2)
        • Web Hacking & Security (2)
      • Write-Up (108)
        • pwnable.kr (17)
        • HackCTF (16)
        • 해커스쿨 FTZ (21)
        • LOB(lord of bufferoverflow) (19)
        • LOS (lord of sql injection) (28)
        • XSS-game (6)
        • Webhacking.kr (1)
      • SUA (19)
        • 오픈소스 보안 (19)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    computeifabsent
    ReentrantLock
    tabat
    reentrantlock실습
    DB정리
    spring
    코드트리
    쿠폰발급
    코드트리조별과제
    computeifpresent()
    ConcurrentHashMap
    CountDownLatch
    nop sled
    thread-safe
    LOB
    Lock
    동시성
    SpringBoot
    hashmap vs concurrenthashmap
    concurrenthashmap vs hashmap
    spring boot
    computeifabsent()
    동시성처리
    enumerate #list comprehension
    putval()
    sqlinjection
    computeifpresent
    Java
    lord of bufferoverflow
    AQS
  • 최근 댓글

  • 반응형
  • hELLO· Designed By정상우.v4.10.3
Penguin Dev
파이썬을 이용하여 네이버 실시간 급상승검색어 가져오기
상단으로

티스토리툴바