개념 익히기
유튜브 강의
셀레니움 및 웹 드라이버 설치
!pip install Selenium # chromium 드라이버를 인스톨 하기 위해 업데이트가 필요함 !apt-get update !apt install chromium-chromedriver # 유저 라이브러리에 설치된 드라이버를 bin에 카피해둠 !cp /usr/lib/chromium-browser/chromedriver /usr/bin # 패스 설정 import sys sys.path.insert(0, '/usr/lib/chromium-browser/chromedriver')
웹 드라이버 설정
from selenium import webdriver options = webdriver.ChromeOptions() options.add_argument('--headless') options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage')
웹 드라이버 객체 생성
driver = webdriver.Chrome('chromedriver', options=chrome_options
셀레니움 실행
driver.get("http://링크주소/")
driver.find_elements_by_tag_name('')
driver.find_elements_by_css_selector('') : 오른쪽 마우스 => Copy => Copy selector
driver.find_elements_by_xpath('')F12(inspect) 눌러서 태그 검색 : 해당 부분은 부캠 스크래핑 강의로 알고 있음
실습
셀레니움 및 웹 드라이버 설치
해당 부분은 "WebDriverException: Message: Service chromedriver unexpectedly exited. Status code was: 1"라는 에러 메세지가 뜸. 2번 블로그를 통해 이유를 파악. 2번 블로그와 마찬가지로, 같은 코드를 받아와서 실행해도 안됨. 3번 출처에서 코랩 사본을 만들어서 코드를 실행하면 정상적으로 작동함.셀레니움 실행
영상에서는 driver.find_element_by_css_selector('경로')와 driver.find_element(By. , '경로') 두 가지 방법을 설명하고, 첫 번째 방법을 주로 사용한다. 첫 번째 방법을 따라하니 AttributeError:'WebDriver' object has no attribute 'find_element_by_css_selector'라는 에러 메세지가 뜬다. 4번 출처에서 이유를 알았고, 두 번째 방법으로 코드 수정을 하면 정상 작동한다.from selenium.webdriver.common.by import By driver.find_element(By.CSS_SELECTOR, '') driver.find_element(By.XPATH, '') driver.find_element(By.NAME, '') driver.find_element(By.CLASS_NAME, '') driver.find_element(By.LINK_TEXT, '') driver.find_element(By.ID, '')
진도
- ⭕ 반복문 코드를 돌리면 전체 스크래핑이 잘 작동
- ⭕ 함수 코드를 돌리면 한 개 기사 스크래핑이 잘 작동, 데이터프레임화 작동
- ❌ 전체 스크래핑을 데이터프레임화 하는 것 : 에러
📌 참고자료
- Selenium 기초 끝내기 - 셀레니움과 웹 드라이버 설치부터 웹사이트 스크래핑 따라하기 (https://youtu.be/dDEESB4Iw8g)
- WebDriverException 에러 : https://blog.naver.com/blue_bigdata/222992793244
- WebDriverException 에러 코랩 코드 출처 : https://pgh268400.tistory.com/286
- find element 메소드 : https://startcoding0.tistory.com/entry/%EC%85%80%EB%A0%88%EB%8B%88%EC%9B%80-%EC%98%A4%EB%A5%98-AttributeError-WebDriver-object-has-no-attribute-findelementbycssselectorxpath-classname-id-linktext-%ED%95%B4%EA%B2%B0%EB%B0%A9%EB%B2%95
댓글