본문 바로가기

Selenium7

[크롤링 / Python] 셀레니움 디버깅 모드 Selenium Debugging Mod 왜 디버깅 모드를 사용해야 하나요?(캡챠 Capcha)셀레니움(Selenium)으로 크롤링을 할때 몇몇 사이트에서는 봇 감지 기능을 사용하여, 로그인을 할때 질문글을 사용하여 사람인지 아닌지 검증하는 단계를 진행해야 하는 경우가 있다.보통 이런걸 "Capcha"라고 하는데 종류도 굉장히 많다. (일반 캡챠 / 키 캡챠 / 클릭 캡챠 / 회전 캡챠 / GeeTest 캡챠 / 카피 퍼즐 등)    Capcha 우회 방법? OCR(Optical Character Recognition)과 AI를 적절히 활용하여 화면을 캡쳐 후 AI가 분석한 결과를 토대로 Capcha를 해결하는 방법과, 캡챠 발생시 캡챠 화면만 해결하도록 알림 메시지를 전달하여 크롤링을 지속하는 방법도 있습니다.아예 이러한 Capcha만 해결해.. 2024. 8. 19.
[셀레니움/selenium]AttributeError: 'str' object has no attribute 'capabilities' error 해결[Solved] 셀레니움을 사용하려고 하니, AttributeError: 'str' object has no attribute 'capabilities' 라는 에러가 발생할 때가 있다. 원인과 해결 방법은 아주 간단하다. 최신 셀레니움에서는 더 이상 크롬 드라이버가 필요치 않게되어 경로를 지정할 필요가 없어졌다, 그런데 경로를 지정("string")하니 당연히 에러가 발생하는 것이다. webdriver.Chrome()만 사용하면 에러도 발생하지 않고 정상적으로 셀레니움의 사용이 가능해집니다. 끝. 2023. 10. 30.
[selenium]log type 'performance' not found[Solve] 해결하기 굳이 bs4나 requests를 안쓰고 selenium을 사용하는 이유는 다양하겠지만, 보통 API가 없어서 "반드시 로그인이 필요한 경우"에 로그인 과정을 인위적으로 구현하기 위해서 사용하는 경우가 많다. 이때 로그인 이후 얻게되는 cookie값들을 활용하면 로그인 이후의 모든 동작들은 requests로 처리가 가능하다. 문제는 requests를 하기위한 토큰 값들을 가져오기 위하여 network에서 실행된 cURL 또는 XHR 정보들을 크롤링할때 driver.get(url) logs_raw = driver.get_log("performance") logs = [json.loads(lr["message"])["message"] for lr in logs_raw] 를 주고 사용하는데, logs_raw =.. 2023. 10. 17.
[selenium 셀레니움]특정 시간동안 발생한 network 목록 가져오기 selenium을 사용하여 데이터를 크롤링할때, 네트워크에서 생성된 특정 동작들을 크롤링하고 싶을때가 있다. 물론 여러 방법이 있겠지만, 아주 간단한 코드로 특정 시간동안 발생한 네트워크들의 목록을 가져올 수 있다. driver.click()이나 driver.execute_script("arguments[0].click();", body_element)를 한뒤 driver.refresh()로 네트워크를 싹 비워주는게 좋다. from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import.. 2023. 9. 20.
[selenium 셀레니움]카X오 로그인 하기 저번엔 네이버 로그인을 selenium을 활용하여 로그인 하는 방안을 테스트 해보았다. https://mrnoobiest.tistory.com/201 [selenium]네이버 로그인시 자동방지 이미지 안뜨게 우회하기 거의 대부분의 사이트는 로그인 할때 네이버,구글,페이스북 같은 SNS 로그인을 많이 실행합니다. 로그인 유지시 크롬에 로그인 정보가 저장되어 별도로 로그인 작업을 진행할 필요가 없지만, 셀 mrnoobiest.tistory.com 요번엔 카X오 로그인을 시도해보려고 한다. kaXo login api를 사용해서 자동으로 로그인하는 방법도 있지만, selenium을 사용해서 로그인을 하려는 것이니 생략한다. API를 사용해서 로그인 할 경우 아래 링크에서 도움을 받으면 될 것 같다(굉장히 상세하.. 2023. 9. 15.
[selenium 셀레니움]네이버 로그인시 자동방지 이미지 안뜨게 우회하기 거의 대부분의 사이트는 로그인 할때 네이버,구글,페이스북 같은 SNS 로그인을 많이 실행합니다. 로그인 유지시 크롬에 로그인 정보가 저장되어 별도로 로그인 작업을 진행할 필요가 없지만, 셀레니움으로 열게된 크롬은 로그인 정보가 없기때문에 로그인 작업을 진행해야 합니다. 그중 네이버 로그인을 할때 많이 발생할 수 있는 경우를 따져 코드를 작성하였다. + 로그인 방지 이미지가 뜨지 않도록 하는 코드도 추가 다음은 로그인 작업 진행 시 꼭 필요한 기능이다. 1) 네이버 로그인 버튼을 클릭 시 새로운 탭에서 로그인을 해야하는 경우(driver2생성 필요) 2) 우회 방지가 발생하지 않도록 해야 한다. from selenium import webdriver import pyautogui from selenium... 2023. 9. 13.
[selenium]셀레니움 설치시 chrome driver를 못 찾을때 beautifulsoup(bs) 도 좋은 라이브러리이지만 특정 액션을 해야 하거나 bs가 읽지 못하는 페이지의 경우는 대부분 셀레니움을 사용한다. 셀레니움을 제대로 활용하기 위해서는 크롬드라이버(chromedriver)가 필수인데, 보통은 구글링으로 자신이 사용하고 있는 크롬 버전을 확인후 해당하는 크롬드라이버를 다운로드하여 사용한다. 크롬창의 URL에 chrome://version 를 입력하면 크롬 버전을 본인 PC의 OS와 함께 확인할 수 있다. 문제는 위의 버전인 116의 경우 구글링을 하여도 찾을 수가 없다는 것이다. 보통은 https://chromedriver.chromium.org/downloads/version-selection에서 찾을 수 있다. 최신 버전의 경우 https://google.. 2023. 9. 13.