※ 해당 크롤링 사이트는 작성자가 수강료를 지불하고 '잔재미코딩 : 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (2023년까지 업데이트)' 강의에서 제공한 사이트임.
※ 수강하면서 별도 코딩하고 녹화하였음.
TMI 지만 잔재미코딩 강의 강추합니다.
□ 목적 : 상품명과 등록일에 대한 태그값을 활용하여 크롤링한 데이터를 openpyxl 라이브러로 엑셀로 저장
#관련함수 라이브러리 실행
import requests #크롤링관련 라이브러리
from bs4 import BeautifulSoup #크롤링관련 라이브러리
import openpyxl #엑셀관련 라이브러리
#★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
#1단계 : 함수정의★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
#★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
def mall_info_get(file_nm, sheet_nm, raw_data):
new_file = openpyxl.Workbook() #파일생성
first_sheet = new_file.active #시트선택
first_sheet.column_dimensions['A'].width = 50 #A열 너비 50지정
first_sheet.column_dimensions['B'].width = 50 #B열 너비 50지정
#시트명이 공란이 아니면 sheet_nm이 시트명으로 지정
if sheet_nm != '':
first_sheet.title = sheet_nm
#로우데이터의 데이터가 first_sheet A,B,C열에 적재
for v in raw_data:
first_sheet.append(v)
#파일저장
new_file.save(f'{file_nm}.xlsx') #매개변수로 받은 file_nm이 파일명이 되도록 설정
#저장후 종료
new_file.close()
#★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
#2단계 : requests 활용 크롤링★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
#★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
target_web = requests.get('https://davelee-fun.github.io/') #해당 링크의 값 가져오기
parser_tool = BeautifulSoup(target_web.content,'html.parser')
base_data_1 = list() #빈 리스트 생성 - 함수호출시 매개변수로 사용예정
base_data_2 = list() #빈 리스트 생성 - 함수호출시 매개변수로 사용예정
prod_nm = parser_tool.select('h4.card-text') #클래스명이 card-text인 h4태그의 모든 값을 가져옴
for v1 in prod_nm:
base_data_1.append(v1.get_text().strip().split(':')[1])
prod_reg = parser_tool.select('span.post-date') #클래스명이 post-date인 span태그의 모든 값을 가져옴
for v2 in prod_reg:
base_data_2.append(v2.get_text())
data_form = list()
for vv1, vv2 in zip(base_data_1,base_data_2): #zip함수를 활용하여 2개의 값을 묶어서 튜플형태로 저장
#append([vv1,vv2]) 로 튜플을 리스트화하여 코드작성을 하면 아래 반복문 실행을 안해도됨
data_form.append(vv1)
data_form.append(vv2)
raw_data = list()
for v3 in range(0,len(data_form),2):
raw_data.append(list((data_form[v3],data_form[v3+1]))) #튜플형태의 값을 list화하여 한개의 데이터로 병합 및 저장
#★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
#3단계 : 함수 호출★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
#★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
mall_info_get('shop_prod_data', 'prod_reg', raw_data)
'Python > Python_Crawling' 카테고리의 다른 글
셀레니움 : 네이트 메뉴버튼클릭 및 댓글작성, 알럴트(경고)창 통제 (0) | 2024.01.18 |
---|---|
셀레니움 : 네이버 로그인 및 메뉴접속 (0) | 2024.01.18 |
openpyxl : 엑셀파일 저장 (0) | 2023.12.27 |
반복문을 활용한 페이지별 크롤링 (1) | 2023.12.21 |
크롤링 예제 4 (1) | 2023.12.20 |