배운 내용/크롤링(crawling)

열려있는 크롬에서 크롤링하기

JooJY 2023. 12. 19. 15:02
반응형

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를 잘 입력하는 것이 크롤링에서 중요한 것 같다.

 

 

반응형