Allen's 데이터 맛집
도커와 함께하는 데이터 수집 본문
도커 환경을 사용하여 데이터를 수집해 보겠습니다.
도커에서 아래의 명령어를 실행시키면, 도커에서 마운트 한 폴더를 파이썬 코드를 실행할 비주얼 스튜디오에서 폴더를 같게 합니다.
docker run -i -t -v /c/Users/Vector/sample:/sample mlearn:init /bin/bash
예) C:\Users\Vector\sample
파일을 다운로드 하는 코드
import urllib.request
url ='http://uta.pw/shodou/img/28/214.png'
savename = 'test.png'
# urlretrieve 는 파일을 다운받을 수 있음
urllib.request.urlretrieve(url, savename) #(어떤 url에 있는것을, 어디에 저장할것인가)
도커에서, ls -l명령어를 통해 우리가 생성한 코드가 있는 것을 확인하고 도커 내에서 파이썬 명령어를 통해서 코드를 실행시키면 코드의 내용처럼 처럼 파일을 다운로드 합니다.
그리고 다시 ls -l 상태명령어를 통해 새로운 png파일이 생긴 것을 확인 가능합니다.
urlopen() 모듈로도 활용하여 가능합니다
import urllib.request
url ='http://uta.pw/shodou/img/28/214.png'
savename = 'test.png'
mem = urllib.request.urlopen(url).read()
with open (savename, mode='wb') as f:
f.write(mem)
print('저장되었습니다')
# urlretrieve() 는 바로 파일을 다운받을 수 있음
#urllib.request.urlretrieve(url, savename) #(어떤 url에 있는것을, 어디에 저장할것인가)
C:\Users\Vector\sample
아래에서 원하는 url 입력 후 mem을 출력하는 것을 하고 cmd 도커에서 해당 파일을 실행시키면 잘 출력되는 것 확인 가능합니다.
import urllib.request
url ='https://www.google.com/'
mem = urllib.request.urlopen(url).read()
print(mem)
print(mem.decode('utf-8')) 을 통해 바로 디코드 가능합니다.
import urllib.request
url ='https://api.aoikujira.com/ip/ini'
mem = urllib.request.urlopen(url).read()
print(mem.decode('utf-8'))