Major Study/25-1 Web Crawling

[Web Crawling] DevTools

선경이 2025. 5. 18. 18:05

웹 개발자 도구

- 웹 개발자 도구(DevTools)란 웹 개발자들에게 웹페이지의 구조, 스타일, 동작을 분석하고 디버깅할 수 있도록 도와주는 브라우저 내장 도구

- 웹브라우저에 포함되어 있는 경우가 많다. ex) 크롬, 엣지, 사파리

 

웹개발자 도구의 필요성

- 웹페이지의 레이아웃이 깨졌을 때 원인을 확인할 수 있다.

- HTML에 포함된 에러를 확인할 수 있다.

- 문제가 있는 태그의 위치를 확인할 수 있다.

 

웹 개발자 도구의 기능

Elements(HTML 요소)

- HTML과 CSS 구조를 실시간으로 확인하고 수정한다.

- 특정 태그에 적용된 스타일을 확인한다.

- 마우스로 해당 요소를 클릭해서 추적이 가능하다.

 

Console

- 자바스크립트 콘솔 출력 (정보, 경고, 에러) 메시지를 확인할 수 있다.

 

Sources

- HTML, CSS, Javascript 소스를 확인할 수 있다.

 

Network

- 웹페이지에 포함된 모든 리소스(파일)들의 네트워크 트래픽 정보, 상태 정보이다.

 

performance

- CPU와 메모리 성능 측정이 가능하다.

 

Memory

- 웹페이지가 사용하는 메모리 상세 정보이다.

 

Application

- 브라우저의 데이터 저장소 관리이다. ex) 웹 앱, 스토리지, 데이터베이스, 캐시, 쿠키

 

웹 개발자 도구를 이용한 크롤링

웹크롤링과 웹개발자도구 (DevTools)

- Elements 패널에서 원하는 데이터를 포함한 HTML 구조를 확인한다.

-> 원하는 데이터를 가지고 있는 태그가 어떠한 구조로 되어 있는지 확인한다.

 

- NetWork 패널에서 데이터가 어디서 어떻게 로딩되는지 분석한다.

     -> API 요청 확인

     -> 자바스크립트 확인

     -> 동적으로 변하는 데이터를 추적할 때는 Console과 sources를 활용해서 흐름을 파악한다.

 

import requests as rq
from bs4 import BeautifulSoup

url = 'https://news.naver.com/section/105'
res = rq.get(url)
html = res.text

soup = BeautifulSoup(html, 'lxml')
titles = soup.find_all(class_='sa_text_strong')

for idx, title_tag in enumerate(titles, 1):
    title = title_tag.text
    print(f'{idx}: {title}')
    
    
    
url = 'https://books.toscrape.com/'
res = rq.get(url)
soup = BeautifulSoup(res.text, 'lxml')
tags = soup.find_all('article',class_='product_pod')
for i, tag in enumerate(tags,1) :
    title = tag.find('h3').find('a').get('title')
    print(f'{i}: {title}')