크롤링

(2) 셀레니움

빠스무 2023. 7. 9. 16:44
728x90

1. 셀레니움(Selenium)

  • 셀레니움은 브라우저를 컨트롤 할 수 있도록 지원하는 라이브러리
# 셀레니움을 쓰기 위해 다운을 받아준다
!pip install selenium
크롬브라우저를 사용하기위해 다운로드
!pip install chromedriver_autoinstaller
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup as bs
 
driver = webdriver.Chrome()
 
search = driver.find_element('name','q')
search.send_keys('날씨')
 
search.send_keys(Keys.RETURN)

2. 네이버웹툰

 

내일 - 297화 남아주세요 (마무리)

297화 남아주세요 (마무리)

comic.naver.com

driver = webdriver.Chrome()
 
soup = bs(driver.page_source)
 
comment_area = soup.findAll('span',{'class','u_cbox_contents'})
 
print('************************************** 베스트 댓글***********************************************')
for i in range(len(comment_area)):
    comment = comment_area[i].text.strip()
    print(comment)
    print('-' * 30)

  • XPath: 기존의 컴퓨터 파일 시스템에서 사용하는 경로 표현식과 유사한 XML의 경로 언어

    /html/body/div[1]/div[5]/div/div/div[4]/div[1]/div[3]/div/div/div[8]/a/span[1]`

     

# 전체더보기 버튼 클릭하기
driver.find_element('xpath','/html/body/div[1]/div[5]/div/div/div[4]/div[1]/div[3]/div/div/div[8]/a/span[1]').click()
 
soup = bs(driver.page_source)
comment_area = soup.findAll('span',{'class','u_cbox_contents'})
print(comment_area)

print('************************************** 전체 댓글***********************************************')
for i in range(len(comment_area)):
    comment = comment_area[i].text.strip()
    print(comment)
    print('-' * 30)