ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • (23.04.18) 파이썬크롤링2 - HTTP 통신, requests
    TIL 2023. 4. 18. 17:21

    TIL은 그날 하루 본인이 어떤 공부를 하였는지 파악하기 위함입니다.
    상세하게 기록하여 이후 본인이 어떤 공부를 어떻게 하였는지 파악할 수 있도록 하는 것이 중요합니다.

     

    학습 주제

    1. 데이터 수집을 위한 웹 통신

    - 웹 스크래핑과 웹 크롤링의 차이를 학습한다

    - 로봇 배제 프로토콜을 해석할 수 있다

     

    2. request 라이브러리 

    - HTTP client 라이브러리와 특징을 학습한다


    주요 메모 사항 

    LAN(Local Area Network)

    • 근거리 지역 네트워크

    Internet

    • 범지구적으로 연결된 네트워크

    WWW(World Wide Web, Web)

    • 인터넷에서 정보를 교환기 위한 시스템

    HTTP(Hypertext Transfer Protocol)

    • 웹 상에서 정보를 주고받기 위한 약속

    웹 스크래핑 vs 웹 크롤링

    • 웹 페이지에 데이터를 추출하는 것
    • 크롤러 혹은 반복적으로 URL을 탐색해 웹 페이지 정보를 인덱싱

    로봇 배제 프로토콜(REP)

    • 로봇들의 무단 접근을 방지하기 위해 만들어진 로봇 배제 표준 권고안
    • /robots.txt 를 통해 사이트별 REP 조회가 가능하다
    • User-agent, Disallow , Allow
    User-agent: *    # 모든 유저에 대해
    Disallow: /      # 모두 접근 불가
    

    requests

    • HTTP Client 라이브러리, http 요청을 보내고 응답을 처리할 수 있다
    • urllib3 기반으로 만들어졌다
    • HTTP/1.0 만 지원한다
    • 동기적인 요청만 처리 가능하다

     

    requests 와 유사한 라이브러리

    urllib3 - 파이썬에 내장된 HTTP client 라이브러리
    - HTTP/1.0 , HTTP/2.0을 지원한다
    - 복잡하고 덜 직관적인 API를 제공한다
    aiohttp - asyncio 을 사용해 비동기적으로 HTTP 요청을 처리하는 라이브러리
    - (asyncio : 비동기식 I/O 및 이벤트 루프를 지원하는 라이브러리)
    selenium 브라우저를 제어하여 웹 페이지를 테스트/스크래핑 할 수 있는 라이브러리

     

    reuqests 와 같이 쓰면 좋은 라이브러리

    • beautifulsoup4 - 마크업언어(HTML,XML) 파싱 lib

     

    Scrapy

    • 파이썬 기반 웹 스크래핑 프레임워크
    • 크롤링 , 데이터 추출 , 데이터 처리/저장 및 파이프라인으로 구성되어 있다
    • 비동기 네트워킹, 내장 데이터베이스를 지원한다
    • 분산 크롤링, 로그인, 캐시, 에러 처리, 유닛 테스트 등의 기능을 수행할 수 있다

    공부하며 어려웠던 내용

     

    CRLF(Carriage Return Line Feed)

    • 줄 바꿈 문자
      • Carriage Return(\r) : 이전 라인의 끝
      • Line Feed(\n) : 새로운 라인
    • HTTP 메시지 라인 간의 구분자로 사용된다
Designed by Tistory.