이똑똑
똑똑이의 개발블로그
이똑똑
  • 분류 전체보기 (28)
    • 라즈베리파이 (16)
    • 개발 (4)
    • 사진 (3)
    • 오큘러스 퀘스트2 (1)
    • 일상 (4)

블로그 메뉴

  • HOME
  • GUEST BOOK
  • ADMIN
  • WRITE

인기 글

태그

  • 라즈베리파이
  • 크림페이
  • 카메라사용법
  • wol서버
  • 아이폰wol
  • 라즈베리파이OS
  • 라즈베리파이설정
  • ftp편집
  • 고스트블로그
  • 라즈베리파이wol
  • 목감꼬라지
  • 리눅스외장하드
  • wol설정
  • 라즈베리파이블로그
  • 카메라기본
  • ChatGPT
  • 메타퀘스트
  • 카메라
  • 라즈베리파이한글
  • 노출3요소

최근 댓글

반응형
hELLO · Designed By 정상우.
이똑똑

똑똑이의 개발블로그

파이썬 - Requests를 이용한 Crawling
개발

파이썬 - Requests를 이용한 Crawling

2022. 8. 4. 10:25

나만의 서버가 있다는 것은 24시간 프로그램을 돌릴 수 있다는 장점이 된다.
여기서는 쉽고 빠르게 개발할 수 있는 파이썬을 주로 쓸 예정이다.

제목의 Crawling은 인터넷에 있는 데이터, 즉 이미지나 텍스트 등을 가져오는 행위라고 보면 된다.

crawling은 크게 두 가지로 나눌 수 있다.

  • requests
  • selenium

경험에 의한 차이를 얘기해보자면, requests의 경우 직접 브라우저를 통하지 않고 해당 페이지에 요청, 응답 코드를 받아오기 때문에 selenium에 비해 속도가 빠르다.

하지만 단점으로는 해당 페이지가 자바스크립트 등을 이용해 로드가 지연된다면, 예를 들어 페이지 자체는 빈 테이블만 있지만 페이지 로드가 시작되면 데이터를 불러온다던지 하는 경우엔 빈 테이블만 응답받게 된다.

이런 경우에 보통 selenium을 쓴다. selenium은, 라즈베리파이의 경우 크로뮴 브라우저를 직접 호출해 페이지를 이동시키고, 코드를 가져오기 때문에 우리가 보는 데이터 그대로 가져올 수 있다. 위의 requests의 단점같은 경우 페이지 로드가 끝나면 데이터를 불러오게 하면 그만이다.

selenium의 단점은 requests와 반대로 속도가 느리다. 브라우저를 직접 사용하기 때문에 브라우저에 명령을 보내고, 브라우저가 이동이 끝나면 가져온다. 안그래도 느린 라즈베리파이의 크로뮴이 더 느려지는 것이다.

이런 장단점 때문에 crawling하려는 페이지의 특징에 따라 그에 맞는 방식을 선택하면 된다.

우선 이 포스트에서는 requests를 사용하는 방법을 작성해보겠다.

바로 들어가보자.

VSCode를 실행한 뒤Ctrl + Shift + P를 입력한 후 Remote-SSH: Connect to Host...를 선택한다.

이전에 설정했던 라즈베리파이가 보일 것이다. 선택한 후 패스워드를 입력하면 연결이 완료된다.

반응형

Ctrl + N을 입력해 새로운 파일을 생성해주고 아래 코드를 작성해보자.

import requests
resp = requests.get("https://google.com")

f = open("test.txt", "w")
f.write(resp.text)
f.close()
Copy

requests를 사용하기 위해 import한 후, 구글 메인페이지의 html소스를 가져오기 위해 사용한다.

응답된 resp 변수의 text코드를 test.txt라는 파일에 저장한다.

작성이 완료됐다면 저장해주자. 간단하게 google.py로 저장한 후 아래 터미널에서 google.py가 저장된 경로(예를 들면 /var/www/html)로 이동, 실행해본다.

잠시 뒤에 왼쪽의 탐색기를 보면 test.txt 파일이 생성된 것을 확인할 수 있다.

반응형

'개발' 카테고리의 다른 글

인공지능, 바둑 - 그림, 다음은 코딩?  (0) 2023.01.30
리눅스 자주 쓰는 터미널 명령어  (0) 2022.08.08
VSCode 설치  (0) 2022.08.04
    '개발' 카테고리의 다른 글
    • 인공지능, 바둑 - 그림, 다음은 코딩?
    • 리눅스 자주 쓰는 터미널 명령어
    • VSCode 설치
    이똑똑
    이똑똑
    개발하면서 궁금했던 것들, 뭔가 검색에서는 안나왔던 것들.. 그 외 일상과 취미에 관한 것들..

    티스토리툴바