[공부 내용]
"""
[동적 크롤링을 이용하여 네이버 로그인 후 카페 게시글 가져오기]
자동입력방지 기능을 막기 위해 send_keys() 함수가 아닌 execute_script() 함수 사용.
로그인 버튼 태그와 선택자 > id : log.login
신규회원게시판 버튼 태그와 선택자 > id : menuLink90
첫 번째 게시물의 XPath > //*[@id="main-area"]/div[4]/table/tbody/tr[1]/td[1]/div[2]/div/a
게시물 내용의 태그와 선택자 > 태그 : div > class : se-module.se-module-text
"""
from selenium import webdriver
import time
"""네이버 로그인 페이지 접속"""
driver = webdriver.Chrome('./chromedriver') #자동화된 크롬창 실행
login_url = 'https://nid.naver.com/nidlogin.login?mode=form&url=https%3A%2F%2Fwww.naver.com'
driver.get(login_url)
time.sleep(2)
"""아이디 비밀번호 입력"""
#본인의 아이디, 비밀번호를 각각 변수에 저장
my_id = '아이디'
my_pw = '비밀번호'
#아이디와 비밀번호 입력 > 'execute_script()' 함수를 사용하여 자바스크립트로 아이디와 비밀번호를 넘기기
driver.execute_script("document.getElementsByName('id')[0].value = \'" + my_id + "\'")
driver.execute_script("document.getElementsByName('pw')[0].value = \'" + my_pw + "\'")
"""로그인 버튼 클릭"""
driver.find_element_by_id('log.login').click()
time.sleep(1)
"""코뮤니티 접속"""
comu_url = 'https://cafe.naver.com/codeuniv'
driver.get(comu_url)
time.sleep(1)
"""신규회원게시판 클릭"""
driver.find_element_by_id('menuLink90').click()
time.sleep(1)
"""프레임 전환
[프레임]은 웹 페이지의 HTML 안에 또 다른 HTML을 넣어둔 것 > iframe 을 검색
게시판 프레임 태그 확인
: <iframe name="cafe_main" id="cafe_main" title="카페 메인" src="//cafe.naver.com/MyCafeIntro.nhn?clubid=30026525" width="860" height="100%" frameborder="0" scrolling="no" marginwidth="0" marginheight="0" allowtransparency="true" allowfullscreen="" style="height: 1720px;"></iframe>
여러 선택자 중 'name'을 사용하여 크롤링 할 때 프레임을 전환
cf)기본 코드
driver.switch_to.frame('프레임의 name')
"""
driver.switch_to.frame('cafe_main')
time.sleep(1)
"""첫번쨰 게시물 클릭"""
driver.find_element_by_xpath('//*[@id="main-area"]/div[4]/table/tbody/tr[1]/td[1]/div[2]/div/a').click()
time.sleep(1)
"""글 내용 출력"""
content = driver.find_element_by_css_selector('div.se-component-content').text
print(content)
# 크롬 창 닫기
driver.close()
'코린이_탈출 > 크롤링' 카테고리의 다른 글
[모각코_크롤링] 동적 크롤링 5 (0) | 2021.01.29 |
---|---|
[모각코_크롤링] 동적 크롤링 4-과제 (1) | 2021.01.28 |
[모각코_크롤링] 동적 크롤링 3 - 과제 (1) | 2021.01.27 |
[모각코_크롤링] 동적 크롤링 3 (0) | 2021.01.27 |
[모각코_크롤링] 라이브러리 'csv' (1) | 2021.01.26 |