*이 글을 읽기전에 작성자 개인의견이 있으니, 다른 블로그와 교차로 읽는것을 권장합니다.*
1. Selenium
셀레니움은 브라우저를 컨트롤할 수 있도록 지원하는 라이브러리입니다.
정적사이트일 경우, BeautifulSoup로 requests하여 크롤링할 수 있지만, 동적사이트일 경우에는 사이트 접근이 막힙니다. 따라서, 동적사이트일 경우 Selenium을 사용하여 사이트에 접근합니다.
!pip install selenium
!pip install chromedriver_autoinstaller
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from bs4 import BeautifulSoup
driver = webdriver.Chrome()
driver.get('http://www.google.com')
# 검색창 - 검색 - name q 확인
search = driver.find_element('name', 'q')
search.send_keys('날씨') # 키보드의 이벤트
search.send_keys(Keys.RETURN)
# 정리
driver = webdriver.Chrome()
driver.get('http://www.google.com')
search = driver.find_element('name', 'q')
search.send_keys('미세먼지') # 키보드의 이벤트
search.send_keys(Keys.RETURN)
2. 네이버웹툰 크롤링
https://comic.naver.com/webtoon/detail?titleId=769209&no=122&week=wed 사이트 크롤링하기
driver = webdriver.Chrome()
driver.get('https://comic.naver.com/webtoon/detail?titleId=769209&no=122&week=wed')
# driver.page_source -> html
soup = BeautifulSoup(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: 기존의 컴퓨터 파일 시스템에서 사용하는 경로 표현식과 유사한 경로 언어
driver.find_element('xpath', '/html/body/div[1]/div[5]/div/div/div[5]/div[1]/div[3]/div/div/div[4]/div[1]/div/ul/li[2]/a/span[2]').click()
soup = BeautifulSoup(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)
'Python > 크롤링(Crawling)' 카테고리의 다른 글
스타벅스 크롤링하기 + 차트 시각화 (0) | 2024.06.11 |
---|---|
파이썬(4)-pixabay (0) | 2024.05.23 |
파이썬(3)-인스타그램으로 크롤링 (0) | 2024.05.23 |
파이썬(1)-Crawling, Scraping (0) | 2024.05.20 |