# Jupyter Notebook 주요 단축키
* Enter: 일반 모드에서 편집 모드로 전환
* ESC: 편집 모드에서 일반 모드로 전환
* ▶︎일반 모드 단축키
* A: 선택된 셀 위에 새로운 셀 추가
* B: 선택된 셀 아래에 새로운 셀 추가
* X: 선택된 셀 잘라내기
* C: 선택된 셀 복사
* V: 선택된 셀 아래에 붙여넣기
* D, D: 선택된 셀 삭제
* Z: 셀 삭제 취소
* ▶︎편집 모드 단축키
* Ctrl + Z: 되돌리기
* Ctrl + Y: 되돌리기 취소
* Ctrl + A: 셀 내용 전체 선택
* Ctrl + Home: 셀 맨 위로 이동
* Ctrl + End : 셀 맨 아래로 이동
* Ctrl + D: 현재 줄 삭제
* Tab: 자동 완성 기능 사용
1. 셀레니움
- 셀레니움은 브라우저를 컨트롤 할 수 있도록 지원하는 라이브러리
# 셀레니움 설치
# window
!pip install selenium
# mac
!pip3 install selenium
# 크롬 드라이버 설치
# window
!pip install chromedriver_autoinstaller
# mac
!pip3 install chromedriver_autoinstaller
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome() #창 띄우기
driver.get('http://www.google.com') #구글이동
search = driver.find_element('name', 'q') # find_element: 태그에서 하나 찾기 :name에서 q만 찾기
search.send_keys('날씨') # 검색창에 날씨 입력
search.send_keys(Keys.RETURN) # 검색
2. 네이버 웹툰
네이버웹툰 베스트댓글과 전체댓글 크롤링하기
- https://comic.naver.com/webtoon/detail?titleId=641253&no=471&week=fri
driver = webdriver.Chrome() #창 띄우기
driver.get('https://comic.naver.com/webtoon/detail?titleId=641253&no=471&week=fri') # 네이버 웹툰으로 이동
!pip3 install bs4
# 베스트 댓글 크롤링하기
from bs4 import BeautifulSoup
soup = BeautifulSoup(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)
# 전체댓글 크롤링하기
- Xpath: 기존의 컴퓨터 파일 시스템에서 사용하는 경로 표현식과 유사한 경로 언어
- Copy full Xpath
- 크롤링을 원하는 위치를 클릭후 우클릭으로 개발자모드(F12/option+control+I) -> Copy -> Copy full 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]
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)
commentall_area = soup.findAll('span', {'class':'u_cbox_contents'})
print(commentall_area)
print('********전체 댓글*****************')
for i in range(len(commentall_area)):
comment = commentall_area[i].text.strip() # 텍스트만 뽑고 공백삭제
print(comment)
print('-' * 30)