DOM (Document Object Model)

  • 문서 객체 모델 : 트리 형태의 프로그래밍 도구 (위>아래로 노드 쌓임)
  • HTML, XML을 프로그래밍적으로 다루기 위한 도구 (웹 페이지 문서를 표현, 저장, 조작함)
  • 문서의 논리적 구조, 문서가 접근되고 조작되는 법을 정의
  • 구조화된 노드(태그)속성, 기능(JS 함수)을 가진 객체로 표현

 

 

JS (JavaScript)

웹 페이지를 위한 프로그래밍 언어 (JIT 컴파일 PL)

DOM으로 HTML을 웹이 애플리케이션처럼 동작하는데 도움을 줌

비 브라우저 환경에서도 사용 (Node.js)

 

자바스크립트로 DOM 선택하기

  • document.querySelector('선택자') : 선택자의 정보를 통해 요소를 집어내는 함수
  • document.createElement('html요소') : 자바스크립트로 HTML 요소를 만드는 함수
  • document.body.appendChild() : body 요소 내부에 새로운 요소를 넣는 함수
var element=
document.querySelector('Head');
console.log(element.nodeName); //Head
<script> //HTML 요소를 불러온 뒤에 아래 함수 실행됨
    window.onload=function(){ //h1 태그 가진 html 요소 생성
    var heading=document.createElement('h1')
    heading.innerText='Hello, world'
    document.body.appendChild(heading)
    }
</script>

 

 


Reference

 

실용적인 웹 프로그래밍 - 인프런 | 학습 페이지

지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요....

www.inflearn.com

 

반응형

웹 서비스에 대해 공부하기 앞서 HTML, CSS를 간략하게 짚어보자

 

HTML

마크업 언어 : 문서의 요소를 태그를 이용해 정의 (NOT PL)

브라우저에게 웹 페이지를 어떻게 구성할지 기술하는 언어

 

문법

  • 중첩태그 가능
  • 블록 단위 요소 (display:block) : 항상 새 줄에서 시작, 가능한 너비 모두 차지
  • 인라인 요소 (display:inline) : 새 줄에서 시작 X, 필요한 만큼만 너비 차지
  • 인라인 블록 (display:inline-block) : 새 줄에서 시작 X (인라인특징), 너비와 높이 가짐 (블록특징)

 

1) 블록 요소 

웹 페이지를 나타내는 구조적 요소 (단락, 목록, 탐색메뉴, 바닥글, ...)

인라인 요소 안에 중첩불가, 다른 블록 요소 안에 중첩가능

 

2) 인라인 요소 

블록 레벨 요소 안에 존재 (주로 텍스트의 구문 : <a>, <em>, <strong>, ...)

 

블록 예제

 

인라인 예제
인라인 블록 예제

 

- Void 요소

Single tag, 닫는 태그 없음. 문서에 삽입/ 첨부하는 경우 (<img>, <embed>, ...)

<img src="sample.png">

 

- 속성

요소에 대한 추가정보 제공 (id, disabled, onclick, ....)

<div id="hello"></div>

 

<html> : 모든 html 요소를 감싸는 역할

<meta> : 웹 페이지의 charset 지정 (utf-8)

주석 : <!-- ○ -->

 


CSS

<style></style> : HTML 콘텐츠와 외부 스타일을 구성 

 

선택자와 선언부로 구성

  • 선택자 : h1 
    • 조상 자손 선택자 : ul 아래의 모든 태그 선택, 적용 (ul li)
    • 부모 자식 선택자 : 선택한 것 바로 밑의 선택자만 선택, 적용 (#lecture>li)
    • 동시 선택자 : 해당하는 두개의 태그를 동시 선택, 적용 (ul, ol)
  • 선언부 : {color: blue; font-size: 12px; }

선택자와 선언부

 

- id속성 : 유일한 하나의 HTML element에만 적용 ( #id값 )

 

- class 속성 : 같은 클래스 내 모든 요소들 속성 변경 ( .id값 )

 


Reference

 

실용적인 웹 프로그래밍 - 인프런 | 학습 페이지

지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요....

www.inflearn.com

 

반응형

크롤링 환경 만들기

 

1. Python 공식 사이트(https://www.python.org/downloads/)에서 Python 설치하기

 

2. PIP 인스톨용 스크립트를 저장하기 (https://bootstrap.pypa.io/get-pip.py)  ‘다른 이름으로 링크 저장’

   

   cmd > 링크 저장한 경로에서 PIP 설치하기

 

python get-pip.py

 

 

3. requests, BeautifulSoup 라이브러리 설치하기

 

pip install beautifulsoup4 requests

 

  • requests : html 데이터 요청
  • BeautifulSoup : html 파싱

Requests 테스트

내 티스토리 주소를 requests 해봤다

import requests
from bs4 import BeautifulSoup
def crawling():
    url='https://rokroks.tistory.com/'
    response = requests.get(url)
    print(response)
    print(response.status_code) #응답코드, 200이면 성공
    print(response.text)
crawling()

▲실행결과

 

잘 불러오는 것을 볼 수 있다. 다음엔 원하는 내용을 파싱해보자.

 

 


Reference

 

Windows용 PIP 설치하기(How to Install PIP For Python on Windows) - 아크몬드넷

PIP란? pip는 파이썬으로 작성된 패키지 소프트웨어를 설치 · 관리하는 패키지 관리 시스템이다. Python Package Index (PyPI)에서 많은 파이썬 패키지를 볼

archmond.net

 

파이썬 크롤링 시작하기 - html 구조와 간단한 크롤링

crawling html 간단한 구조 tag head title body p a href img h1, h2, h3, h4 input button css란? tag별 스타일링 id, class 크롤링 requests beautiful soup 네이버 블로그 크롤링 해보기 크롤..

software-creator.tistory.com

 

반응형

'Web > 실습' 카테고리의 다른 글

웹 서비스 다뤄보기 (2) - JavaScript와 DOM  (2) 2021.05.12
웹 서비스 다뤄보기 (1) - HTML, CSS  (0) 2021.05.12
크롤링 (1)-개념 및 방식  (0) 2021.05.03

크롤링(Crawling)

크롤링이란 웹에서 데이터를 수집하여 원하는 데이터를 추출하는 기술이다.

데이터를 검색, 색인, 가공까지 가능하기에 방대한 자료들을 활용하는 검색엔진 혹은 특정 정보들을 분석해야하는 분야에서 다양하게 사용되고 있다.

 


1. 크롤링 방식

1) 웹 페이지에 데이터 요청

정보를 추출하기 위해 웹에 요청하는 방식은 Get과 Post가 있다.

 

  • Get : URL을 통해 서버에 정보를 전달. URL 특성 상 길이제한이 있어 일반적으로 적은 양의 정보를 전달할 때 사용.
  • Post : 요청과 응답이 웹 페이지의 본문 안에서 일어나 글자 수의 제한이 없음.

이 단계에서 Python은 주로 requests 로 처리한다.

 

import requests

r=requests.get(target_url)

 

target_url 변수에 크롤링 하려는 웹페이지의 URL을 문자열로 저장한 뒤 requests.get()으로 불러온다.

 

 


 

2) 데이터 파싱

데이터를 추출하기 위해서는 가져온 웹 페이지를 파싱하는 단계가 필요하다.

파싱 :  페이지(문서, html 등)에서 원하는 데이터를 특정 패턴이나 순서로 추출하여 정보로 가공하는 것

 

이 단계에서 Python은 Beautiful soup 로 처리한다. (HTML, xml 파싱 라이브러리)

 

from bs4 import BeautifulSoup

#lxml파싱
lxml = BeautifulSoup(r.content, 'lxml')  #r=requests.get(target_url)

#HTML파싱
html = get_html(target_url)
soup = BeautifulSoup(html, 'html.parser')

 

1)에서 가져온 데이터를 파싱한다. (lxml이 성능향상에 좋음)

 

 


 

3) 데이터 추출

2)에서 파싱한 데이터에서 원하는 데이터를 추출, 처리한다.

 

이 단계에서 Python은 soup 객체의 find_all 혹은 find 함수를 사용해 데이터를 추출한다.

 

result = soup.find_all("a")
print(len(result))

 

 


2. 제한 규약 (robots.txt)

지식재산권을 침해하는 등의 피해를 방지하기 위해 웹 페이지마다 크롤링을 제한하는 규약이 있다.

웹 사이트 주소 끝에 'robots.txt'을 입력하면 크롤링을 허용하는 범위를 알려준다. 

 

나무위키에서 크롤링이 가능한 범위

 

크롤링개념과 크롤링 방식에 대해 알아보았다. 다음 회차에 Python으로 간단히 크롤링해보자.

 

 


Reference

 

웹 크롤링에 대해서

Data and Visualization

lumiamitie.github.io

 

크롤링 - 나무위키

이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외) 기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권

namu.wiki

 

파이썬으로 크롤링 하기

requests와 Beautiful Soup을 사용해보기

medium.com

 

반응형

+ Recent posts