250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

데이터 놀이터

Section 4 - Sprint 2. 데이터 수집과 NoSQL - 2. Web scraping - (2) DOM, Web scraping 본문

코드스테이츠 AIB 17

Section 4 - Sprint 2. 데이터 수집과 NoSQL - 2. Web scraping - (2) DOM, Web scraping

jjjk84 2023. 4. 1. 23:02
728x90

1. DOM

 

(1) 개념

 

Document Object Model의 약자

프로그래밍 언어를 통해 HTML, XML 등 문서들에 접근할 수 있도록 돕는 프로그래밍 인터페이스다.

 

(2) 메소드

 

HTML을 확인할 수 있는 개발자도구를 opt+cmd+i(mac 기준)키로 열어 콘솔창에 자바스크립트를 통해 DOM을 사용할 수 있다.

 

document.querySelectorAll('a') : css의 a 셀렉터와 일치하는 모든 요소 리턴
document.querySelector('a')

document.getElementbyTagName('a') : a 태그와 일치하는 문서 요소들 리턴
document.getElementById('a') : a id와 일치하는 요소들 리턴
document.getElemnetByClassName('a') : a클래스가 일치하는 요소들 리턴

 

2. Web scraping

 

### Python을 활용한 Web scraping

## 1. requests 라이브러리 (HTTP 요청을 보내는 역할)

	# 1. 설치
	pip install requests

	# 2. 사용
    import requests
    url='http://google.com'
    page=requests.get(url) # 구글 사이트에 http 요청 보내기

    resp.status_code # 요청 상태 확인

## 2. BeautifulSoup 라이브러리 (요청으로부터 받은 내용을 파싱하여 정보 얻기)
# 파싱(parsing) : HTML, XML 등 특정 문서들을 Python에서도 활용할 수 있도록 변환하는 작업
	
    # 1. 설치
    pip install beautifulsoup4
    
    # 2. 사용
    from bs4 import BeautifulSoup
    
    soup=BeautifulSoup(page.content, 'html.parser') 
    
    # 3. 요소 찾기 (find, find_all)
    
    # soup.find(), soup.find_all() 주의사항 
    
    soup.find(class_='cat') # class가 아닌 class_
    
    soup.find_all('div', class_='cat') # <div> 태그 내 클래스
    
    soup.find_all(string=lambda text: 'raining' in text.lower()) # 문자열 포함 요소 찾기
    
    # 4. 결과 확인
    
    cat_el = soup.find('p', class_='cat')
    
    cat_el.text

 

 

3. 더 알아봐야할 것

 

Python으로 웹 스크래퍼 만들기 – 노마드 코더 Nomad Coders

Python for Beginners

nomadcoders.co

 

728x90