본문 바로가기
컴퓨터를 알아보자!/파이썬을 이용한 작품 모음집

파이썬 selenium 으로 2개 이상의 데이터 크롤링 하여 엑셀에 저장하기

by 피너트 2022. 1. 21.
반응형

오늘은 파이썬 selenium 를 이용하여 데이터를 크롤링 하고 그 크롤링한 값을 가지고 엑셀에다가 저장하는 방법에 대해서 알려드리겠습니다.

 

서론은 이만하고, 본론으로 들어가죠.

 

1. 필요한 라이브러리 설치

셀레니움을 설치하는 방법은
https://game1ife-pnut.tistory.com/30

 

파이썬 셀레니움을 활용하여 구글 이미지를 다운 받아보자! [ 소스코드 포함 ]

저는 게임과 일상 블로그를 올리지만, 어느날 관상 테스트를 만들고 싶다고 생각하여, 제 소스 노트겸, 여러분들께 정보를 공유해드리겠습니다. 만약 이 귀찮은 과정을 보고 싶지 않다면은 11.

game1ife-pnut.tistory.com

이 곳에 나와있으니 참조 바랍니다! (4번까지만 보면 될거 같군요.)

pip install openpyxl

 

2. 라이브러리 import 하기
from selenium import webdriver # 셀레니움 관련 코드
from selenium.webdriver.common.keys import Keys # 셀레니움 관련 코드
import time # 잠시 쿨타임 지정 할 때 쓴다.
import openpyxl # 엑셀관련 라이브러리

 

3. 엑셀 데이터 만들기
wb = openpyxl.Workbook() # workbook 을 생성하고
sheet = wb.active # 그것을 활성화 시켜준다.
sheet.append(["a", "b"]) # 엑셀의 그 줄을 가지고 a 와 b 를 추가한다.

sheet.append 는 대괄호를 묶으셔야 하는데, 대괄호를 안쓰시면은 오류가 터집니다. 주의해주세요.

 

4. 웹 크롤링 하기
driver = webdriver.Chrome()

# ... 크롤링할 데이터 추출 ....

sheet.append([원하는 데이터값1, 원하는 데이터값2])

 

5. 엑셀 저장하기
wb.save("파일명.xlsx") # 이 파일명을 다른것으로 바꿔 주셔도 됩니다.

 

6. 1~5번 을 합쳐서 예문 보기 ( 해커스 토익 시험날에 나왔던 기출문제를 예시로 )
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import openpyxl

wb = openpyxl.Workbook()
sheet = wb.active
sheet.append(["영어", "뜻"])

driver = webdriver.Chrome()

for i in range(635):
    i = i + 1
    i = str(i)
    driver.get("https://www.hackers.co.kr/?r=hackers&m=contents&front=toeicword&p=" + i)
    time.sleep(1)
    try:
        for a in range(25):
            a = a + 1
            a = str(a)
            eng = driver.find_element_by_xpath('//*[@id="container"]/div[3]/div/div[2]/div[2]/div[2]/ul/li[' + a + ']/span[1]').text
            kor = driver.find_element_by_xpath('//*[@id="container"]/div[3]/div/div[2]/div[2]/div[2]/ul/li[' + a + ']/span[2]').text
            sheet.append([eng, kor])
    except:
        pass

wb.save("영어.xlsx")

제가 필요해서 쓴 구문을 예시로 보여드리겠습니다. 혹시 이해가 안가시는 부분이 있다면은 댓글을 남겨주세요!

 

오늘도 긴글 봐주셔서 감사합니다!

반응형

 

반응형

댓글