끄적이는 기록일지

11. [파이썬] 웹데이터 수집 자동화 - 웹크롤링(크롬버전 확인, 크롬드라이버 설치)(1) 본문

파이썬

11. [파이썬] 웹데이터 수집 자동화 - 웹크롤링(크롬버전 확인, 크롬드라이버 설치)(1)

시시나브로 2021. 7. 3. 03:26
728x90
 

10. [파이썬] 예외처리 사용하기

1. 예외처리 try : 예외가 발생할 문장 except 예외 종류 : 발생하면 실행할 문장 else : 발생하지 않을 때 실행할 문장 2. ValueError 에러 #예외처리 예제1 #정상적인 경우 print('정상적인 경우\n') no1 = int(.

kcy51156.tistory.com

 

 

0. 웹 크롤링 원리

 

1) 사람이 파이썬 언어로Selenium에게 특정 웹 페이지를 크롤링하라고 명령한다.

 

2) Selenium은 소스코드에 지정된 Web Driver를 실행하ㅕ 웹 페이지에 접속한다.

 

3) 접속한 웹 페이지를 HTML 소스코드 형태로 현재 크롤링을 실행하는 컴퓨터로 가져온다.

 

4) 골라낸 데이터를 원하는 형식의 파일로 저장한다.

 

 

 

- 브라우저 제어(자동화)를 위한 Selenium 모듈 그리고 검색된 데이터를 분석(parsing)하기 위한 Beautiful Soup을 활용

 

- 각 브라우저(익스플로러, 크롬 등)를 제어하기 위한 브라우저별 해당 드라이버를 설치해야 한다.(크롬 : chromedriver)

 

- RPA, RDA : 자동화 도구

 

1. 먼저 필수 모듈을 설치합니다.

 

pip install bs4

 

 

 

pip install selenium

 

 

- 추가적으로 설치하면 좋은 모듈

 

pip install requests
pip install zipfile37

 

 

 

2. 크롬드라이버 설치

 

- 크롬드라이버 버전은 사용자의 브라우저 버전에 따라 조금씩 다를 수 있다.

 

- 브라우저 제어가 제대로 안된다면 크롬브라우저를 업그레이드하거나 버전에 맞는 드라이버를 설치해줍니다.

 

 

1)  설치하기 전 내 크롬 브라우저의 버전을 확인해봅니다.

 

 

- 현재 버전이 91버전임을 알 수 있습니다.

 

 

2) 이제 크롬 드라이버 다운로드 페이지(ChromeDriver - WebDriver for Chrome - Downloads (chromium.org)에 들어가서 자신의 버전에 맞는 드라이버를 설치해줍니다.

 

 

 

- 내 컴퓨터가 32비트던 64비트던 여기서는 단일 파일로 제공하기 때문에 window32를 다운받아줍니다.

 

 

 

3)  다운이 완료됬다면 py_temp2 파일에 넣어줍니다.(아무 파일을 생성하여 넣으시면 됩니다.)

 

 

 

- 어떤 버전인지 확인하기 위해 크롬드라이버 파일이름 뒤에_91를 붙여 버전 확인할 수 있게끔 해줍니다.

 

 

 

3. 크롬드라이버 자동 다운로드 및 압축해제 예제

 

import requests
import zipfile37 as zipfile
import os.path

#크롬드라이버 다운로드 및 설치 

#url은 다운받은 링크 복사하여 붙여넣는다.
url = "https://chromedriver.storage.googleapis.com/91.0.4472.101/chromedriver_win32.zip"
r = requests.get(url, allow_redirects = True)
open('c:\py_temp2\chromedriver_win32.zip/',"wb").write(r.content) #다운받기

#지정된 경로에 크롬드라이버 압축해제
chrome_path = "c:\py_temp2\chromedriver_91/chromedriver.exe'"

if os.path.isfile(chrome_path) != True : #만약 파일이 없으면 압축 풀기
    zipfile.ZipFile("c:\py_temp2\chromedriver_win32.zip/").extractall("c:\py_temp2\chromedriver_91")
    

 

728x90
Comments