크롤링과 스크래핑

파이썬은 웹 사이트에 있는 데이터를 추출하기 위해 'urllib' 라이브러리를 사용한다.

이 라이브러리를 이용하면 HTTP 또는 FTP를 사용해 데이터를 다운로드 할 수 있다.

urllib는 URL을 다루는 모듈을 모아 놓은 패키지라 할 수 있다.

파일 저장

  • urllib()로 바로 저장
# PNG 파일 다운로드
# urllib.request.urlretrieve(url, savename)
# 파일을 함수로 

import urllib.request

url = "http://uta.pw/shodou/img/28/214.png"
savename = "test.png"

urllib.request.urlretrieve(url, savename)
print("저장~")

파일저장 2

  • 파일(데이터)을 파이썬 메모리 위에 올렸다가 저장
  • urlopen()
import urllib.request

url = "http://uta.pw/shodou/img/28/214.png"
savename = "test.png"

# 다운로드
# PNG 파일의 resource를 열고 -> read() 메소드로 데이터를 읽는다.
mem = urllib.request.urlopen(url).read()

# 파일로 저장
# -> 1. 파일을 여는 open() 함수로 파일을 여는데, 
# -> 2. 파일 모드를 나타내는 mode="wb"로 파일을 연다. w는 쓰기, b는 바이너리 모드를 의미한다
# -> 3.
with open(savename, mode="wb") as f :
    f.write(mem)
    print("저장되었습니다!")

웸에서 데이터 추출하기

클라이언트 접속 정보 출력
# IP 확인 API로 접근해서 결과 출력하기
import urllib.request

url = "http://api.aoikujira.com/ip/ini"
res = urllib.request.urlopen(url)
data = res.read() # read로 읽어들인 데이터는 바이너리이다

# 바이너리를 문자열로 변환하기
text = data.decode("utf-8")
print(text)

실행결과

C:\Python\Python36\python.exe C:/ch1/download-ip.py
[ip]
API_URI=http://api.aoikujira.com/ip/get.php
REMOTE_ADDR=211.45.60.5
REMOTE_HOST=211.45.60.5
REMOTE_PORT=38189
HTTP_HOST=api.aoikujira.com
HTTP_USER_AGENT=Python-urllib/3.6
HTTP_ACCEPT_LANGUAGE=
HTTP_ACCEPT_CHARSET=
SERVER_PORT=80
FORMAT=ini
URL에 매개변수 추가

results matching ""

    No results matching ""