본문 바로가기

Python/Python_Crawling34

셀레니움 : 구글 검색어 입력 및 기사 접속, 화면 스크린샷(캡쳐) □ 주 사용 라이브러리 ○ 셀레니움 ○ 셀레니움 > 웹드라이버 > 키 ○ 셀레니움 > 웹드라이버 구동 ○ 셀레니움 > 웹드라이버 > 옵션 라이브러리 ○ 타임지정 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.chrome.options import Options import time □ 주 사용 함수 ○ 드라이버 구동 : .webdriver.Chrome( ) ○ 생성창 최대크기 : .maximize_window() ○ 생성창 크기지정 : .set_window_size(가로,높이) ○ 생성창 위.. 2024. 1. 18.
셀레니움 : 네이트 메뉴버튼클릭 및 댓글작성, 알럴트(경고)창 통제 □ 주 사용 라이브러리 ○ 셀레니움 ○ 셀레니움 > 웹드라이버 > 알럴트창 ○ 셀레니움 > 웹드라이버 > 키 ○ 셀레니움 > 웹드라이버 구동 ○ 셀레니움 > 웹드라이버 > 옵션 라이브러리 ○ 타임지정 # 필요 라이브러리 호출 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys # 값 입력관련 라이브러리 from selenium.webdriver.common.alert import Alert #알럴트 방지관련 라이브러리 from selenium.webdriver.chrome.options import Options #자동꺼짐방지옵션 라이브러.. 2024. 1. 18.
셀레니움 : 네이버 로그인 및 메뉴접속 □ 주 사용 라이브러리 ○ 셀레니움 ○ 셀레니움 > 웹드라이버 구동 ○ 셀레니움 > 웹드라이버 > 옵션 라이브러리 ○ 타임지정 # 필요 라이브러리 호출 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.options import Options #자동꺼짐방지옵션 라이브러리 import time #타임설정 □ 주 사용 함수 ○ 드라이버 구동 : .webdriver.Chrome( ) ○ 생성창 최대크기 : .maximize_window() ○ 생성창 크기지정 : .set_window_size(가로,높이) ○ 생성창 위치좌표 : .set_window_position(행위치,.. 2024. 1. 18.
openpyxl을 활용한 데이터 크롤링 및 엑셀저장 ※ 해당 크롤링 사이트는 작성자가 수강료를 지불하고 '잔재미코딩 : 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (2023년까지 업데이트)' 강의에서 제공한 사이트임. ※ 수강하면서 별도 코딩하고 녹화하였음. TMI 지만 잔재미코딩 강의 강추합니다. □ 목적 : 상품명과 등록일에 대한 태그값을 활용하여 크롤링한 데이터를 openpyxl 라이브러로 엑셀로 저장 #관련함수 라이브러리 실행 import requests #크롤링관련 라이브러리 from bs4 import BeautifulSoup #크롤링관련 라이브러리 import openpyxl #엑셀관련 라이브러리 #★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ #1단계 : 함수정의★★★★★★★.. 2023. 12. 27.
openpyxl : 엑셀파일 저장 □ 사용 라이브러리 : openpyxl pip install openpyxl □ 함수 ○ 엑셀 파일 생성 : openpyxl.Workbook() ○ 엑셀 시트 선택 : 엑셀파일명.activce ○ 시트 이름 변경 : 변수명.title = 시트명 ○ 엑셀파일 저장 .save('파일명'.xlsx) ○ *저장 후 닫기 : .close() ※ 꼭 엑셀 파일을 생성/열었다면 저장후 필히 닫아야함 #openpyxl 라이브러리 활용 import openpyxl #엑셀 파일 생성 : .Workbook() excel_data = openpyxl.Workbook() #엑셀 시트 선택 : .activce excel_data_sheet = excel_data.active #시트 이름 변경 : 변수명.title = 시트명 ex.. 2023. 12. 27.
반복문을 활용한 페이지별 크롤링 □ url 링크 패턴을 파악 후 If문과 for문을 활용하여 페이지별 해당하는 조건의 데이터를 추출 #관련 라이브러리 호출 import requests from bs4 import BeautifulSoup for page_num in range(10): if page_num == 0: #조건문을 활용하여 0이면 홈화면 출력 target_page = requests.get('https://davelee-fun.github.io/') print('홈화면 입니다') else: #0이 아니라면 그다음 페이지는 아래 링크로 이동하며 h4이며 클래스명이 card-text인 데이터를 추출 target_page = requests.get(f'https://davelee-fun.github.io/page{str(page.. 2023. 12. 21.
크롤링 예제 4 □ 예제 : 특정 페이지의 태그별 영역의 값을 가져와 원하는 형태로 출력하자 (작성자는 사이트의 요약정보를 출력해주는 것을 위해 태그별 크롤링한 데이터를 단순가공하여 출력함) #라이브러리 호출 import requests from bs4 import BeautifulSoup #크롤링 대상 웹사이트 지정 web = 'https://davelee-fun.github.io/' #정보 가져오기 requests.get() requests_info = requests.get(web) requests_info_parser = BeautifulSoup(requests_info.content, 'html.parser') print('\n####################블로그 기본정보###################.. 2023. 12. 20.
css selector □ select() ○ select() 안에 태그 또는 CSS class 이름 등을 넣음 ○ 결과값은 리스트 형태로 반환 ○ 매칭되는 첫번째 데이터만 얻고자 할 때는 select_one(), 이 때는 해당 아이템의 객체가 리턴됨 ○ 하위태그 - '상위태그 하위태그' : 상위에서 하위태그에 있는 모든 값을 출력 - '상위태그>하위태그' : 상위기준 바로 하위에있는 태그 값 출력*반드시 상/하위로 구성된 태그일때만 사용가능 □ select_one() ○ 리스트형태가 아닌 단하나의 객체로 출력 ○ 조건에 맞는 값들이 다른 값들이 많아도 첫번째 값만 출력 *find()/select()로 가져온 객체에는 find()/select()함수를 중복하여 사용가능함 #라이브러리 추출 import requests from .. 2023. 12. 20.
크롤링 예제 3 □ 전처리 ○ .split(구분값) - 구분값을 중심으로 분리하여 리스트 형태로 저장 - 구분되어 저장된 값을 인덱스 번호를 활용하여 출력 ○ .strip() : 앞, 뒤 공백 제거 ○ .replace('변경대상 값', '변경할 값) : 특정 값을 원하는 값으로 변경 □ enumerate(변수명) ○ 반복문으로 출력시 출력 값에 번호를 붙이고 싶다면 enumerate 함수 활용 ○ 이때 번호로 출력할 변수를 추가하여 코딩해야함 #라이브러리 추출 import requests from bs4 import BeautifulSoup #크롤링 대상 사이트 지정 target_place = requests.get('https://davelee-fun.github.io/blog/crawl_test') #htmlpars.. 2023. 12. 19.