안녕하세요. 오늘은 파이썬을 활용하여 웹 사이트에 있는 데이터를 추출 해볼까 합니다.
우선 데이터를 받기 위해서 "urllib 라이브러리"를 사용할 예정입니다.
이 라이브러리를 이용하면 HTTP 또는 FTP를 사용해 데이터를 다운로드 할 수 있습니다.
urllib은 URL을 다루는 모듈을 모아놓은 패키지라고 할 수 있습니다.
그 중에서도 urllib.request 모듈은 웹 사이트에 있는 데이터에 접근하는 기능을 제공합니다.
데이터를 다운로드 하기 전에 데이터 url을 알아야 하는데요.
저는 데이터를 전부 받으면 용량이 너무 크기 때문에 간략히 네이버 로고정도만 다운로드를 할 예정입니다.
네이버 로고를 받기 위해서는,
1. 크롬 기준으로 오른쪽 위의 점 3개를 클릭 후 도구 더보기 -> 개발자 도구를 클릭하여 들어간다.
2. 빨간색 동그라미가 쳐진 부분을 클릭 후 네이버 로고를 클릭해준다.
3. url을 복사한다.
이제 url을 알았으니 본격적으로 파이썬을 활용하여 이미지를 받도록 하겠습니다.
1. 파일 내 바로 저장하기
# 라이브러르 읽어 들이기
import urllib.request
# 원하는 url을 입력
url = "http://s.pastatic.net/static/www/mobile/edit/2020/1222/mobile_223827482666.png"
# 저장하고자 하는 파일 이름 입력
savename = "naver.png"
# 다운로드 실행(urlretrieve을 활용하여 바로 저장)
urllib.request.urlretrieve(url, savename)
이와 같이 코딩을 해서 실행해주면 다음과 같이 naver란 이름의 PNG파일이 저장됩니다.
2. 파이썬 메모리 위에 데이터를 올린 후 파일에 저장
# 라이브러르 읽어 들이기
import urllib.request
# 원하는 url을 입력
url = "http://www.kacn.org/image/main1.jpg"
# 저장하고자 하는 파일 이름 입력
savename = "natural.png"
# urlopen을 이용하여 메모리 위에 데이터를 올려놓음
natural_pic = urllib.request.urlopen(url).read()
# mode를 wb로하여 파일로 저장 (wb에서 w는 쓰기(write), b는 바이너리모드(binary를 의미))
with open(savename, mode="wb") as f:
f.write(natural_pic)
이와 같이 코딩을 해서 실행해주면 다음과 같이 natural란 이름의 PNG파일이 저장됩니다.
만약 원하는 데이터가 바로 추출할 수 있다면 첫 번째 방법으로 처리가 가능하지만,
대부분의 데이터는 가공할 필요가 있기 때문에 2번째 방법이 더 많이 쓰이고 있습니다.
이상 파이썬을 활용하여 데이터를 가져오는 방법에 대하여 설명하였습니다.
'AI > 데이터 수집' 카테고리의 다른 글
Selenium을 활용한 로그인 (0) | 2021.02.02 |
---|---|
requests 모듈의 메서드 (0) | 2021.01.31 |
requests를 사용하여 로그인 (0) | 2021.01.31 |
상대경로 및 절대경로 (0) | 2021.01.26 |
CSS 선택자 (0) | 2021.01.25 |