selenium
![[Python] Shadow DOM 크롤링 - Selenium](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbclVBl%2FbtrP3kPDIDK%2F3QHltddQDJakDTGuFiWMQ0%2Fimg.png)
[Python] Shadow DOM 크롤링 - Selenium
Selenium No Such Element 에러 최근 Selenium을 사용하여 크롤러를 구축할 일이 생겨 평소와 같이 Xpath, Selector 등을 사용하여 구축을 시도하였다. 하지만, Selenium 사용 시 가장 흔한 에러인 selenium.common.exceptions.NoSuchElementException: Message:no such element:Unable to locate element:{"method":"css selector", "selector':"실제 사용한 구문" 에러가 발생하여 모든 방법을 동원해 수정하였으나 오류는 해결되지 않았다. 해당 에러를 해결하는 방법에는 클래스 명에 공백이 존재하여 공백 대신에 점(.)을 사용하여 해결, 로딩 시간으로 인한 오류를 방지하기 위..
[Python] Selenium을 사용한 크롤링 제작(2)
Selenium을 사용한 크롤링 제작(1) 기존 Selenium을 사용하여 만들었던 크롤링에는 치명적인 단점이 하나 존재하였다. 2022.09.07 - [개발💻/Python] - [Python] Selenium을 사용한 크롤링 제작(1) 기존 크롤링의 문제 기존 만들었던 크롤링은 중복 제거 로직이 존재하지 않아 같은 파일도 계속 다운로드되어 실질적으로 원하는 악성 APK 파일을 다운로드 할 수 없었기에 중복 제거 로직을 추가하기로 하였다. 중복 제거 로직 MD5 해시값 비교를 통해 중복 검사를 하기로 결정하여 List 로 선언 후 전체적인 코드를 구현하였다. 하지만, 매번 List가 초기화되어 이전에 다운로드 했던 APK의 MD5 해시값이 누적되는 것이 아니라 그 시점(코드를 돌릴 때)에만 중복제거가 이..
![[Python] Selenium 사용하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FW1v3b%2FbtrLLXivag8%2FQOzkhfioJKIjARNaIi2zSK%2Fimg.png)
[Python] Selenium 사용하기
왜 Selenuim을 사용하지?? 일반적으로 널리 알려진 BeautifulSoup 라이브러리를 사용해도 사이트의 다양한 정보를 추출할 수 있다. 하지만...BeautifulSoup에는 자바스크립트로 동적으로 생성된 정보는 가지고 올 수 없는 한계가 존재한다😭 Selenium을 사용할 경우 동적으로 만든 데이터 크롤링이 가능해지고 다양한 요소에 클릭과 같은 이벤트를 주는 것이 가능해진다! Import and Install Selenium은 다른 라이브러리와 동일하게 다음과 같은 명령어로 쉽게 설치할 수 있다. pip install selenium Import 주로 사용하는 Import 목록은 다음과 같다. import selenium from selenium import webdriver from sele..
![[Python] Selenium을 사용한 크롤링 제작(1)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdfcgSb%2FbtrLFg3LBSr%2FiwMDsYEuPK5LvYFrHPj1Qk%2Fimg.png)
[Python] Selenium을 사용한 크롤링 제작(1)
Install 일반적인 설치과정과 동일하게 "pip install selenium"을 사용하여 설치할 수 있다. Import import requests from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By import time Code "봇이 아니라 사람이야"를 알려주기 위해 user_agent를 추가한 후 webdriver 객체를 생성한다. (webdriver를 동일 경로 내에 위치시켜 별도의 경로 지정 코드는 추가하지 않았다.) user_a..