열려있는 크롬에서 크롤링하기
https://jakpentest.tistory.com/39
열려있는 chrome에서 크롤링하기
개요 크롤링을 하다 보면 복잡한 로그인 기능부터 구현을 해야 자신이 가져오고 싶은 데이터를 가져올 수 있는 경우가 종종 있습니다. 그 '로그인'이라는 것이 단순히 ID와 Password를 통해 이루어
jakpentest.tistory.com
이분 블로그 참조
공부용으로 문제 같은 것 크롤링해서 문서로 만들어서 공부하려 했는데 로그인, 봇체크 등등으로 크롤링하기 어려운 경우가 많다.
로그인 문제 등 다 해결하고 나온 화면의 자료만 좀 크롤링하고 싶다.
근데 일반적으로 크롤링을 하면 다 크롬을 새로 띄워서 주소를 입력하고 들어가기 때문에 처음부터 다 설정을 해야 한다.
이게 싫어서 좀 찾아보니 위의 블로그가 나와서 참조하였다.
먼저 당연히 크롬이 설치되어 있어야 하고 chrome.exe << 이 파일을 찾아야 한다.
이 파일의 위치가 사용자마다 다른데 보통은 여기에 있다.
C:\Program Files\Google\Chrome\Application\chrome.exe
여기서 저 chrome.exe를 더블 클릭하면 크롬이 새로 열리는데 이렇게 하면 안되고!
관리자 모드 CMD를 열어서 크롬을 열어야 한다.
근데 그전에 폴더를 하나 만들자.
c 드라이브에 chromeTEMP 라는 폴더를 만들어서 크롤링 시 생기는 잡다한 파일들을 저기에 저장하자.
명령 프롬프트 우클릭 후 관리자 모드로 실행
chrome.exe가 있는 폴더로 이동
cd C:\Program Files\Google\Chrome\Application
폴더로 이동 후 아래 명령어를 실행하면 크롬이 새로 열린다.
chrome.exe --remote-debugging-port=9222 --user-data-dir="c:\ChromeTEMP"
여기에서 크롤링하기 원하는 홈페이지까지 직접 이동하자.
예를 들어 내 블로그 글 중 하나로 이동.
https://joosblog.tistory.com/376
12월18일 - 클라우드 솔루션 아키텍처
msp : 운영 업무, cpu, 메모리 등 확인. 알람을 받고 1차적 트러블 슈팅 해결이 안되면 sa(솔루션 아키텍처)에 연락 cloud solution architecture : 클라우드 환경에서 서비스 및 응용 프로그램을 설계하고 구
joosblog.tistory.com
이 블로그 글을 크롤링 해보자.
이후에 파이썬 파일 하나 만들고 크롤링 시작.
일단 내 selenium 버전은 4.15임.
버전마다 셀레니움 명령어가 다르니 주의할 것.
아래 코드를 넣고 실행하면 된다.
import time
from selenium.webdriver import Chrome
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
# Chrome 드라이버 경로 (다운로드한 ChromeDriver 경로로 수정)
chrome_driver_path = "C:\Program Files\Google\Chrome\Application\chrome.exe"
# Chrome 드라이버 설정
driver = Chrome(options=chrome_options)
context = []
list_basis = driver.find_element(
by="class name",
value="main-content"
)
# SetPage-setDetailsTerms
print(list_basis.text)
주의할 점은 내가 원하는 글을 크롤링하려면 list_basis << 이 부분을 변경해야 한다.
by= , value= <<< 여기를 변경해야 하는데 이걸 변경하는 방법은 F12를 눌러 개발자 모드로 변경한 뒤 class와 그 값을 넣어야 한다.
작은 화살표를 누른 후 왼쪽 화면에 가져가면 특정 부분에 대한 class 와 값을 알 수 있다.
아래의 그림에서 메인 화면에 대한 tag는 class이고 class name은 main-content 이다.
따라서 이 부분을
by="class name",
value="main-content"
이렇게 바꿔서 넣어야 한다.
아무튼 코드를 실행하면 저 내용의 text가 결과로 나온다.
셀 결과 마지막에 text editor를 누르면 새 창이 뜨면서 전체 글이 나온다.
이 전체 글을 ctrl+a 눌러서 전체 선택하고 복사한 후 메모장이나 다른 워드 파일에 붙여넣기 하면 된다.
솔직히 나도 프론트 엔드에 대해 잘 모르기 때문에 div나 class 등등 head, tag 등등 잘 모른다.
그냥 이것 저것 넣다보니 원하는 결과가 나오는 경우가 많음.
자기가 원하는 부분을 잘 찾아서 그 부분에 대한 tag를 잘 입력하는 것이 크롤링에서 중요한 것 같다.