본문 바로가기
Web-Crawling

01. 환경설정 및 원하는 웹사이트 로그인하기(동적 Crawling 활용)

by 레드아이™ 2020. 8. 25.

1. Anaconda navigator의 Environment에서 create를 누른다.

2. 버전과 이름을 입력하고 ok를 누른다.

 

3. 설치되어 있는 패키지 리스트에서 All을 선택하고 필요한 패키지를 추가로 설치한다.

 

4. Jupyter Notebook, requests, Bs4, Openpyxl, Panda, re2, selenium

 

selemiun은 동적 크로울링을 위한 방식으로, 클릭/입력/로딩 등의 명령을 구성한다.

 

5. Home에서 Jupyter notebook을 실행한후, 사용자 폴더의 특정위치에 새폴더를 만들고, Jupyter nootebook에서 새로운  Python 3 파일을 생성후 아래와 같은 코드를 입력하낟.

from openpyxl import load_workbook, Workbook
import pandas as pd
import re
from selenium import webdriver

 

6. crawling할 특정 웹사이트의 주소를 url 변수로 정의한 후, url을 열기

#열고자 하는 웹페이지의 주소를 url 변수로 정의
url='https://www.naver.com/'

#설치된 Chromewebdriver를 실행
driver=webdriver.Chrome('/Users/ikaros79/Downloads/chromedriver')

#url 열기
driver.get(url)
driver.implicitly_wait(3)

 

7. xpath를 활용하여 원하는 웹 페이지의 항목을 선택한 후, 클릭 (xpath는 html보기에서 아래의 이미지처럼 select 기능을 사용하여 해당 위치에 마우스를 올려놓으면 html코드가 보인다. 해당 코드에서 마우스 오른쪽 클릭 후 Copy-copy xpath를 선택하면 된다.)

해당 아이콘의 html 코드 위치를 확인하기
html 코드에서 xpath를 copy하기

 

#xpath를 사용하여 원하는 웹 페이지의 항목을 선택 후 click
driver.find_element_by_xpath('로그인 버튼의 XPATH 입력').click()
driver.implicitly_wait(3)

8. 로그인 페이지가 뜨면, id와 password를 입력하는 코드를 아래와 같이 작성. xpath활용

#브라우저 내 자바스크립트에 직접 입력
driver.execute_script("document.getElementsByName('id')[0].value='ID'")
driver.execute_script("document.getElementsByName('pw')[0].value='PASSWORD'")

#id/pass를 입력한 후 Login 버튼을 클릭
driver.implicitly_wait(3)
driver.find_element_by_xpath('로그인 버튼의 XPATH 입력').click()

 

9. 2단계 인증의 경우 해제하고 진행. 새로운 기기 등록을 위한 창이 떴을때, 마찬가지로 Don't Save 버튼을 클릭하는 코드 입력

#새로운 기기 등록을 위한 창이 떴을 때, don't save를 클릭
driver.find_element_by_xpath('//*[@id="new.dontsave"]').click()

 

댓글