webcrawling

web crawling 하기전에 알아둬야 할 사항

  • 예를들어, 네이버 홈페이지를 크롤링한다고 하면 www.naver.com/robots.txt을 브라우저 주소창에 입력하면 로봇 배제 규약에 관한 내용이 나옵니다.

robots.txt 내용 요약

  1. 모든 로봇 접근 허락
    User-agent: *
    Allow : /
    1. 모든 로봇 접근 차단
      User-agent: *
      Disallow: /
    2. 모든 로봇에 디렉토리 3곳 접근 차단
      User-agent: *
      Disallow: /cgi-bin/
      Disallow: /tmp/
      Disallow: /junk/
    3. 모든 로봇에 특정 파일 접근 차단
      User-agent: *
      Disallow: /directory/file.html
    4. BadBot 로봇에 모든 파일 접근 차단
      User-agent: BadBot
      Disallow: /
    5. BadBot과 Googlebot에 특정 디렉토리 접근 차단
      User-agent: BadBot
      User-agent: Googlebot
      Disallow: /private/

참고사항 2020년 4월 21일 현재

  1. 네이버 로봇 규약 설정
    출처: https://searchadvisor.naver.com/guide/seo-basic-robots
  • 사이트의 루트 페이지만 수집 허용으로 설정합니다.
    User-agent: *
    Disallow: /
    Allow: /$

  1. 다음 로봇 규약 설정
  • 모든 로봇의 접근 차단
    User-agent: *
    Disallow: /

    1. 카카오 로봇 규약 설정
  • 모든 로봇의 접근 차단

  • See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file

  • To ban all spiders from the entire site uncomment the next two lines:
    User-agent: *
    Disallow: /

문제가 있거나 오타가 있으면 댓글이나 메일로 알려주세요.
감사합니다 :)

자세한 내용은 아래 사이트를 참조하세요.
출처: https://gbsb.tistory.com/80
출처: https://medium.com/@euncho/robots-txt-e08328c4f0fd
출처: https://support.google.com/webmasters/answer/6062596?hl=ko
출처: https://ko.wikipedia.org/wiki/%EB%A1%9C%EB%B4%87_%EB%B0%B0%EC%A0%9C_%ED%91%9C%EC%A4%80

webcrawling

※ 출처 : fast campus 머신러닝 인강(변영효 강사님)

  • 일부 내용만 발췌하였고, 기본적인 개념 및 추가내용을 확인하시려면 인강 수강을 권장드립니다.

  • 내용요약

    1. 웹사이트에서 원하는 정보의 태그를 파악
    1. 모듈을 통해 태그를 찾은 후 원하는 값을 가져옴

2. HTML(Hyper Text Markup Language)

  • 웹 사이트를 생성하기 위한 언어로 문서와 문서가 링크로 연결되어 있고, 태그를 사용하는 언어

  • 태그 : HTML 문서의 기본 블락

  • 브라우저에 어떻게 렌더링(화면에 표시)될지 전달

  • <태그명 속성1=”속성값1” 속성2=”속성값2”>Value</태그명>

  • <태그명 속성1=”속성값1” 속성2=”속성값2”/>

  • p 태그 : paragraph tag

    한 문단으로 표시해주는 태그

  • div 태그

    그룹핑을 하는 태그
  • 대부분의 crawling은 태그 안에 있는 값을 추출하는 작업입니다.

  • html 기본구조

BeautifulSoup test

Contents Title

Test contents

Test Test Test 1

Test Test Test 2

Test Test Test 3

웹 사이트에서 본인에게 필요한 정보를 가져오는 실습을 해보는걸 추천드립니다.

webcrawling

1. 개발자 도구를 활용한 웹페이지 분석

  • chrome 기준

  • 웹 브라우저 : html로 작성된 내용을 user(사람들)가 보기 쉽게 랜더링 해주는 기능을 함

  • Elements 탭

  • 원하는 데이터로 이동하는 기능을 사용

  • 엘레먼트 탭 : 왼쪽 상단에 있음, 원하는 데이터를 클릭했을 때 어떤 테그와 어떤 속성을 가지는지 표시해주는 역할을 함

  • 어떤 태그와 속성을 가지는지 먼저 파악해야 함

  • Network 탭

  • Preserve log : 체크 시, 로그가 지워지지 않고 유지됨

  • 브라우저가 서버에 요청되는 모든 요청을 로그함

  • url 확인 가능

  • 요청이 많은 이유 : 이미지 등은 첫번째 요청에 한번에 오지 않고, 따로 요청하여 받아옴

  • 처음엔 기본적인 데이터만 넘기고, 나머지 데이터는 브라우저에서 ajax 등의 기술을 이용해서 비동기적으로 가져갈 수 있도록 함

  • HTTP(Hyper Text Transfer Protocol) : HTML 문서 등의 리소스를 전송하는 프로토콜(규약)

  • 클라이언트(user가 사용하는 브라우저)가 서버에 HTTP 요청(Get, Post 등)

  • 서버에서 클라이언트로 HTTP 응답을 함

  • Get 요청 : 데이터를 url에 포함하여 전달(주로 리소스 요청에 사용), 정보의 공유가능

  • Post 요청 : 데이터를 Form data에 포함하여 전달(주로 로그인에 사용)

  • rendering(렌더링) : html을 받아 사용자(사람들)이 볼 수 있도록 출력해주는 작업