본문 바로가기

List of Articles

파이썬을 이용한 구글 이미지 다운로더 만들기 | Making Image Downloader from google image by using Python 글을 쓰거나, 이미지 작업을 필요로 할 때, 인터넷 상에서 많은 이미지들을 검색 및 다운, 활용하는 사례가 많을 수 있다. 그럴 때마다 인터넷에 접속해서 관련 이미지를 찾아서 다운받고 활용하는게 상당히 번잡스럽게 느껴지곤 한다. 이를 위해 누군가 관련 이미지들을 폴더에 다운받아 놓아주었으면 할 때가 있는데, 걱정마시라(?) 우리에게는 프로그래밍 언어가 있다. 이번에는 파이썬으로 내가 필요로 하는 이미지를 하나의 폴더에 좌~악 받아주게 해 보려고 한다. 언제나 그렇듯, 이걸 왜 만들어 할 때가 있는데, 같은 작업을 계속 반복적으로 하는 것 보다, 단순 반복작업은 그냥 컴퓨터가 알아서 하게 만들어두면 얼마나 편하겠는가. 우리는 호모 사피엔스이다. 구석기 시대의 유물인 노가다 작업(?)은 그만 두시라. 처음부.. 더보기
2017년 4월. 고조되는 한반도 위기/전쟁설. 미 트럼프 대통령 손에 달린 것인가? 2017년 4월, 중국의 시진핑 주석과 미국의 도널드 트럼프 대통령이 1:1 단독 회담을 가졌다. 그 이후 한반도 주변 정세는 빠르게 변화하고 있는 중이다. 한미 연합 훈련을 마치고 싱가포르에서 호주로 향하던 USS 칼 빈슨 항공 모함이 예정된 이동을 취소하고 다시 한반도로 향하고 있다. 그리고 일본에서는 로널드 레이건 항공 모함도 대기중인 것으로 알려지고 있다. 서태평양 주변의 미 전략 자산들이 속속 한반도 주변으로 재배치되고 있는 상황이 이어지자 여기저기에서 4월 위기설, 4월 한반도 전쟁설등이 흘러나오고 있는 실정이다.과연 이번 사태가 전쟁으로 이어질까? 아니면 단순한 해프닝으로 끝날까? 당연히 전쟁은 어떠한 일이 있어도 발생해서는 안 될 것이다. 전쟁이 발발하게 된다면, 한반도는 돌이킬 수 없는 .. 더보기
2017년 4월 한반도로 이동중인 항공모함 칼빈슨(USS Carl Vinson) 미군 당국은 북한의 핵무기 개발 계획에 대한 우려가 커지면서 한반도 근해인 서태평양쪽으로 미 항공모함 USS Carl Vinson 호를 이동하겠다고 하였다. 이달 초 북한은 액체 연료가 공급되는 스커드 미사일을 일정 거리만 시험 비행하는 테스트를 진행하였다. 칼 빈슨 (Carl Vinson) 항모 전단은 원래 싱가포르 근해에 정박중이었다고 하는데, 이번 북한의 핵실험 징후 포착 직후에 한반도로 이동할 것이라고 미국의 한 당국자가 익명을 요구하며 한 언론사에 확인해 준것이 전세계에 속보로 퍼져나가게 된 것이다. 이 관계자는 북한의 우려스러운 행동을 언급하면서 "우리는 더 많은 입지가 필요하다고 생각한다." 라고 전했다고 한다. 이를 미국의 언론사를 시작으로 한국의 언론사들이 받아 보도하자, 여기저기서 우려.. 더보기
세계에서 가장 큰 항공 모함 10선 바다위를 떠다니는 공군 기지로서의 항공 모함의 우수성은 2차 세계 대전 이후 입증되어 왔다. 세계에서 가장 큰 항공 모함인 Nimitz Class는 미국 해군이 운용하는 반면, 세계 10 대 항공 모함 중 3 대가 아시아 해군에 의해 운영되고 있다. Nimitz Class, US Nimitz Class는 97,000t의 최대 적재량으로 세계 최대 항공 모함이다. 이 클래스의 첫 번째 항공모함은 1975 년 5 월에 배치되었으며, 10 번째이자 마지막 배인 USS George H.W. BUSH (CVN 77)는 2009 년 1 월에 시운전을 마쳤다. Nimitz Class는 약 50년 동안 작동하도록 설계되어 중급 수리를 한 번만하면 될 정도로 디자인 되었다. 332.8m 길이의 항모는 60 대 이상의 항.. 더보기
Multi Variables Linear Regression을 Tensor Flow 에서 구현하기 Multi Variables 을 이용한 Linear Regression 을 학습하고자 한다.이전에 알아본 Single Variable Linear Regression 에서 여러개의 변수가 추가되었을 때 보다 실용적인 결과값을 구현할 수 있을 것이다.x1, x2, x3 이렇게 3개의 instances의 값을 가지고 보다 더 cost function 값을 줄인 결과값을 얻고자 할 때의 코딩이다. 위의 코드를 실행하면 아래와 같은 결과 값을 얻을 수 있다. 처음 부분과 마지막 부분만을 캡쳐하여 올려둔다. 그러나, 여기서 문제점은, 위와 같은 형태에서는 instance와 data 값이 늘어나면 코드가 지저분해 진다는 데 있다. 이를 수학적(?)으로 보다 깔끔하게 하기 위해서는 아래와 같은 Matrix(행렬 or.. 더보기
스타크래프트 1.18 테스트버전 다운 및 실행 for win & mac | STARCRAFT 1.18 down & launch for Windows & Mac 다운로드테스트버전 설치 방법이 변경되었습니다. 새로운 테스트버전에서는 드디어 MacOS를 지원합니다.MAC OS 용 Starcraft 1.18 다운받기 기존 스타크래프트 or 브루드워 설치 유무와 상관없이 무료로 이용가능합니다. Windows 용 스타크래프트 1.18 다운받기 설치 및 실행 위 다운로드 링크로 Launcher 파일을 다운받고 실행합니다.언어에서는 한글이 아직 없기에 ENGLISH 를 선택합니다. 물론 여타 언어를 선택해도 무방합니다.설치 화면이 나오면 '동의'를 체크합니다.Continue를 누릅니다.설치가 완료되기를 기다립니다.설치가 완료되었다면 실행을 합니다. 실행하기실행을 하고 나면 아주 앤틱(?)하고 친숙한 오프닝 화면이 등장합니다. 테스트 서버에 피쉬서버(한국지역서버)가 추가되었습.. 더보기
TensorFlow Linear Regression with place holder As we studied before, we can use 'placeholder' as a source of input value. So, I changed the source code uploaded on this blog with placeholder. You might know the differences if you check on here.import tensorflow as tf # X and Y data #x_train = [1,2,3] #y_train = [1,2,3] W = tf.Variable(tf.random_normal([1]), name = 'weight') b = tf.Variable(tf.random_normal([1]), name = 'bias') X = tf.placeho.. 더보기
tvn 드라미 <시카고 타자기> 등장 인물 관계 및 줄거리 tvN 금, 토 드라마 가 실시간 검색어에 등장하고 있다. 흥행 보증(?) 수표인 배우 유아인, 동안 미모를 뽐내는 배우 임수정이 함께 하기 때문이란다. 판타지 휴먼 로맨스 코미디로 4월 7일 첫 방송을 시작하였다. 매주 금,토 저녁 8시에 방송. 요즘은 장르에 왜 이렇게 복합적인 요소가 많은지....ㅎㅎㅎ 옛날 개그 프로그램에서 온갖 장르를 다 가져다 쓰는 유머가 있었는데, 불현듯 그게 떠오른다. 제작 발표회부터 유아인, 임수정, 고경표 배우들이 참여한다고 하여 개인적으로 많은 관심을 가졌던 터라 첫 방송부터 기대를 하고 시청하였다.( 요즘 시간이 많나 ㅡㅡ;;) 주요 인물로는 한류 스타 못지 않은 큰 인기를 누리고 있는 워커홀릭 베스트셀러 작가 한세주 역의 유아인 동물들에게 한류 스타 못지 않은 인기.. 더보기
무료 프로그래밍, 대학 교재로 공부하자 | Free E-Book, Textbook Openstax 빌게이츠 재단이 후원하고 저명한 저자들이 참여하여 제작한 양질의 책들을 공짜로 제공하는 사이트이다. 수학, 과학, 사회, 화학, 물리학 등 다양한 분야의 대학 교재로 사용되는 책들이 올라와 있는 곳이다. Syncfusion 이 사이트는 특히 이공계, 그 중 프로그래밍을 공부하는 학생들에게 유용한 사이트이다. 물론 요즘은 과 특성을 불문하고 많은 사람들이 프로그래밍을 공부하고 있으므로 각계각층에 도움이 되리라 본다. 더보기
How to Run Fast Forward or Fast Backward on QuickTime Player with AppleScript property step : 10if application "QuickTime Player" is running thentell application "QuickTime Player"set playerPosition to (current time of front document) + stepset movieDuration to duration of front documentif (front document is playing) thenset isPlaying to trueelseset isPlaying to falseend ifif (playerPosition ≥ movieDuration) thenif front document is playing thenstop front documentend ifse.. 더보기
Linear Regression Ex1 H(x) = wx + b 의 Linear Regression example code import tensorflow as tf # X and Y data x_train = [1,2,3] y_train = [1,2,3] W = tf.Variable(tf.random_normal([1]), name = 'weight') b = tf.Variable(tf.random_normal([1]), name = 'bias') # Our hypothesis XW + b hypothesis = x_train * W + b # cost/Loss function cost = tf.reduce_mean(tf.square(hypothesis - y_train)) # Minimize optimizer = tf.train.Gradi.. 더보기
아나콘다(Anaconda)에 TensorFlow 설치하기 on Mac | Installing TensorFlow at Anaconda on MAC OS X Anaconda 설치Anaconda 는 여러 수학, 과학 패키지를 기본적으로 포함하고 있는 파이썬 배포판입니다. Anaconda 는 "conda" 로 불리는 패키지 매니저를 사용하여 Virtualenv 와 유사한 환경 시스템을 제공합니다. (역주: 텐서플로우 뿐만이 아니라 일반적인 데이터 사이언스를 위해서도 아나콘다를 추천합니다)Virtualenv 처럼 conda 환경은 각기 다른 파이썬 프로젝트에서 필요한 패키지들의 버전이 충돌되지 않도록 다른 공간에서 운영합니다. 텐서플로우를 Anaconda 환경으로 설치하면 기존 파이썬 패키지들을 덮어쓰지 않게됩니다.Anaconda를 설치합니다.conda 환경을 만듭니다.conda 환경을 활성화 하고 그 안에 텐서플로우를 설치합니다.설치 후에는 텐서플로우를 사용하고.. 더보기
[BASH] Make multiple screenshots into one image(tile, mosaic) by using ffmpeg To make multiple screenshots and place them into a single image file (creating tiles), you can use FFmpeg's tile video filter, like this:ffmpeg -ss 00:00:10 -i movie.avi -frames 1 -vf "select=not(mod(n\,1000)),scale=320:240,tile=2x3" out.png That will seek 10 seconds into the movie, select every 1000th frame, scale it to 320x240 pixels and create 2x3 tiles in the output image out.png, which will.. 더보기
애플 스크립트를 이용한 이메일 보내기 with 첨부파일. Sending an Email with attachments using AppleScript tell application "Mail" set theSubject to "제목을 넣어준다." -- the subject set theContent to "본문에 들어갈 내용을 적는다" -- the content set theAddress to "수신인의 메일 주소를 적는다" -- the receiver -- set theSignatureName to "시그너쳐 이름을 넣어준다." -- the signature name set theAttachmentFile to "SH:Users:SH:Desktop:ScreenShots:1.png" -- 첨부파일의 경로를 설정한다. set msg to make new outg.. 더보기
관리자권한으로 cron 설정하기. It's easy to use. If you want to run cron job as super user(administrator), follow the below command. sudo crontab -eAdd just 'sudo' before crontab. It'll work on your system. 더보기
Web Crawler 013 - Initializing first spider - 첫 스파이더 구동하기. 자, 이번 시간부터는 본격적으로 웹 사이트 크롤링을 해 보도록 하겠습니다. 그러기 위해서 이제까지 만들어 둔 함수 및 파일들을 한 곳에서 일괄적으로 다루어야 함으로 main.py 라는 파일을 만들도록 하겠습니다. 그리고는 아래와 같이 파일들도 불러오고 쓰레딩(threading) 관련 모듈도 불러 옵니다. 하나의 스파이더로 처리하는 것은 비효율적이겠죠? 몇 개는 링크들을 찾는 크롤러로 활동하게 하고, 또 다른 몇개의 스파이더들은 다른 스파이더들이 찾은 링크를 타고 들어가서 또 링크를 찾고 이렇게 서로 협업을 하게 하기 위함입니다. 개략적인 내용은 쓰레딩을 lookup 해보시면 아시리라 봅니다. ▼ 프로젝트 네임을 아래와 같이 정해주었습니다. 그냥 단순하게 홈페이지 이름을 기입하였습니다. 지금은 이렇게 써 .. 더보기
Web Crawler 012 - Domain Name Parsing - 도메인 네임 파싱하기. 안녕하세요. 이번 시간에는 크롤러가 어느 웹사이트를 크롤링 할지를 정해주는 도메인 네임에 대해 알아보고자 합니다. 인터넷은 참으로 광범위한 공간이죠. 만약 이러한 공간을 특별한 조건없이 크롤링하게 한다고 하면 어떻게 될까요? 아마도 내 컴퓨터의 모든 자원은 전세계 인터넷을 뒤지고 다니느라 바빠질 것입니다. 이러한 무한 루프를 방지하기 위해서는 특정한 조건을 주어 이 범위를 만족하는 사이트들만 크롤링 하라고 명령을 내려야 할 것입니다. 그래서 필요한 것이 도메인 네임입니다. 제 블로그를 기준으로 얘기를 하자면, 여기의 주소는 https://creativeworks.tistory.com 입니다. 여기에서 도메인 네임은 tistory.com 이 됩니다. 만약 tistory.com 을 제가 혼자 다 사용하고 있.. 더보기
Web Crawler 011 - Adding Links to Queue - 링크를 웨이팅 리스트에 추가하기. 이번 시간에는 이전 시간에 이어서 웹페이지에서 찾아낸 링크들을 waiting list 에 추가하는 함수를 만들어 보도록 하겠습니다. 어떤 특정 사이트에 있는 전체 웹페이지들을 크롤링하기 위해서 해당 사이트의 홈페이지를 들어가고 거기서 링크를 타고 타고 가서, 해당 사이트의 모든 링크들을 찾을 것입니다. 이렇게 찾아낸 링크 값들을 waiting list 에 넣게 하는 스파이더와 waiting list 에 저장이 된 링크들을 각각 따로 크롤링 할 스파이더들을 만들어야 합니다. 이와 같은 일련의 과정중 전자인 찾은 링크들을 waiting list ( queue) 에 넣어주기 위한 함수를 만들것 입니다. 우선 아래와 같이 찾은 링크를 인자로 받는 함수를 선언해 줍니다. ▼만약 전달 받은 링크의 url 값이 qu.. 더보기
Web Crawler 010 - Gather_Links 함수 만들기 이번 시간에는 앞 시간에서 코딩한 부분중 정의하지 못한 gather_links() 부분을 만들어 주도록 하겠습니다. 웹페이지의 url 값을 넣어주면 해당 페이지에서 링크를 포함하고 있는 html 값을 찾게 되는데, 여기에서 링크 값만을 추출하게 하여 리스트에 넣어 주어야 그 값으로 링크들의 웹페이지를 다시 크롤링 할 수 있게 됩니다. 우선, 아래와 같이 정의를 해 주었습니다. ▼ 여기에서 하나의 문제가 있는데, 파이썬에서 urlopen 모듈을 사용해서 웹페이지를 연결하면, 인간이 읽을 수 있는 형태의 문자를 받아 오는게 아니라, 컴퓨터(기계)가 이해할 수 있는 바이트(bytes: 0 or 1) 단위로 데이터를 가지고 옵니다. 질문을 주시는 많은 분들이 파이썬으로 크롤링할 때, 내가 지금 무엇을 크롤링하는.. 더보기
Web Crawler 009 - Crawling Pages You want to crawl - 크롤링 하고자 하는 페이지 링크들 크롤링하기. 오랜만에 글을 쓰는 것 같네요. 이번에는 지난 시간까지 만들어 둔 코드부분에 크롤링을 할 수 있게 하는 함수 crawl_page() 부분을 추가해 주도록 하겠습니다. 아래와 같이 함수를 정의해 주겠습니다. thread_name, page_url 을 인자로 받도록 하겠습니다.▼만약에 전달 받은 page_url 값이 기존에 crawled 되어 있는 리스트에 존재하고 있다면, 중복해서 또 크롤링 해 줄 필요가 없겠죠? 그래서 없는 경우에만 크롤링할 수 있도록 조건을 달았습니다.▼크롤링된 값에 없는 url 이면, 이제부터는 해당 url 을 크롤링 할 것이라고 사용자에게 알려주는 문구를 보여주게 하고 있습니다. 물론 크롤링 할 page_url 이 어떤 것인지도 함께 표기하도록 하였습니다. ▼그리고 waiting .. 더보기
How to check the length of a media file on bash - bash 를 이용한 동영상 파일 길이 알아내기. There are several methods to do that. I'd like to post one of the easiest way how I can find out the length of a video(media) file by using. First of all, you need to install 'FFMPEG' with homebrew on mac (if you are using it). if you don't know how to install homebrew on MAC, you can check it on my blog link below [MAC TIP] Mac에 Homebrew 설치하기 Here we go~, Something similar to:ffmpeg -i input 2>.. 더보기
Web Crawler 008 - Making the Spider boot up. - 스파이더 구동하기. 지난 시간에는 스파이더 클래스를 초기화 하는 과정까지 알아보았다. 이번에는 이 스파이더 클래스를 조금 더 풍성하게 만들어 보자. 우선 이 스파이더 클래스가 객체화 될 때, self.boot(), self(crawl_page) 이렇게 2개의 함수를 호출하는 부분을 초기화하는데 넣어주었었다. 그래서 이번에는 이 2개의 함수 중 boot() 함수를 정의해 보려고 합니다. 우선 아래 이미지를 먼저 보면서 살펴보자면, boot(self) 를 정의하고 create_project_dir(Spider.project_name) 이라고 하는 부분을 삽입해 주었습니다. 이는 클래스가 객체화될때, 이전에 만들어 둔 create_project_dir() 함수를 이용해서 폴더를 먼저 만들어 주게 하려고 했는데, 여기서 이렇게 사.. 더보기
Web Crawler 007 - Initialize the Spider information - 스파이더 초기화. 이제 스파이더에서 사용될 변수(variables)들을 선언해주었으니, 다음으로는 스파이더 클래스를 초기화 하도록 하겠습니다. 우선 스파이더 클래스 초기화를 위해 정의를 해주어야겠죠? 아래와 같이 선언을 해주고, 사용할 인자는 project_name, base_url, domain_name 을 넣어 주었습니다. 프로젝트 네임은 어느 사이트를 크롤링할지 초기에 정해줄 이름입니다. 그리고 해당 사이트의 기본 주소인 base_url 을 넣어 주었습니다. 그리고 중요한 것 중 하나인 domain_name 을 넣어주었는데, 만약 도메인 네임을 특정 웹 사이트내로 한정하지 않는다면, 인터넷 전체를 링크 타고타고해서 크롤링을 하게 됩니다. 정말 이러면 구글의 크롤러처럼 전세계 모든 웹사이트를 서치할 수 있게 되어 버릴.. 더보기
Web Crawler 006 - Creating the spider - 스파이더 만들기. ## 시작하기에 앞서, Paek 님이 지적해 주신 사항입니다. 이전 시간까지는 main.py 로 작성을 하였는데, 파일명을 general.py 로 바꾸었습니다. 왜냐하면 추후에 만들어둔 모든 함수, 파일을 한곳에서 처리하기 위해 별도로 main.py 를 만들기 위함입니다. 지적해주신 Peak님 감사합니다. ## 이제 기본으로 필요한 도구들(함수)을 만둘어 보았으니, 다음으로 크롤링을 위한 스파이더를 만들어 보도록 하겠습니다. 파이썬에서 말하는 스파이더는 마치 거미가 거미줄(web)을 여기저기 돌아 다닌다는 의미로 네이밍이 되었습니다. 그와 마찬가지로 코딩을 통하여 웹상에서 링크를 타고 타고 돌아다니게 하기 위해 스파이더를 만들어 주도록 하겠습니다. 우선 필요한 모듈을 불러오도록 하겠습니다. 아래와 같이 .. 더보기
Web Crawler 005 - Parsing HTML and Find Links - HTML 파싱 및 링크 찾기. 이번 시간에는 HTML 을 파싱하고 웹페이지에서 링크들을 찾는 것 까지 다루어 보도록 하겠습니다. 우선 HTML을 파싱하기 위해 관련 모듈을 불러오겠습니다. ▼ urllib 에서 parse 도 불러오겠습니다. ▼ 링크를 찾는 클래스를 정의해 주도록 하겠습니다. ▼ 초기화를 아래와 같이 하고 HTMLParser를 종속하게 하였습니다. ▼ 웹페이지에서 tag 를 다루는 함수를 정의하고 찾게 될 tag를 확인할 용도로 print() 하도록 하였습니다. ▼ 에러는 아래와 같이 우선 정의해 주었습니다.▼ 클래스 기초 정의는 끝났습니다. 그럼 이게 어떤 의미인지 알아보도록 하겠습니다. 아래 코드를 보시면 finder 는 LinkFinder() 로부터 생성하였습니다. 그리고 웹페이지에서 찾을 태그가 feed() 안에.. 더보기
Web Crawler 004 - Accelerate Crawling by avoiding repetition - 중복을 회피하여 크롤링 속도 개선하기. 이전 시간까지는 기본적으로 어떤 웹 사이트를 크롤링하기 위해서 기초작업을 하였습니다. 프로젝트 생성, 링크를 저장할 파일 만들기, 파일 내용 삭제하기 등등. 이번에는 웹 크롤링을 할 때, 어떤 페이지를 타고 들어간다고 생각해보세요. 거기서 링크를 파일로 저장을 하였는데, 다른 곳에서도 같은 링크를 찾을 경우가 많을 것입니다. 이렇게 서로 중복되는 링크들을 크롤링을 하게 된다면, 시간이 꽤 걸릴 것입니다. 물론 몇 페이지가 안된다면, 체감할 정도는 아닐 것입니다. 그러나 크롤링 할 페이지가 1만 혹은 그 이상이 된다고 한다면, 상당한 시간을 중복된 링크를 크롤링하는데 소요하게 될 것입니다. 그래서 이번에는 이러한 중복 자체를 크롤링 하기 이전에 제거하는 코딩을 해 보려고 합니다. 파이썬에서는 여러개가 중복.. 더보기
Web Crawler 003 - 링크 찾기 및 삭제하기 (Adding and deleting links) 이번에는 기본 URL 에서 크롤링 하려고 찾은 링크들을 파일에 저장을 하려고 합니다. 멀티 프로세싱 혹은 멀티 쓰레딩 작업을 통해서, 하나의 과정은 링크를 찾아 파일에 넣어 저장하고, 다른 하나의 과정은 이렇게 찾은 링크들을 크롤링하게 하려고 합니다. 여기에서 찾은 링크를 파일에 저장을 할 시에 중복되는 링크도 존재하기 마련입니다. 그래서 그런것들의 중복 크롤링을 막기 위해, 애초에 크롤링할 파일에 해당 링크 URL 이 존재하면 추가적으로 append 하지 않게 하면 됩니다. 시작해 볼까요? 우선 이미 만들어 둔 파일에 링크를 더해가는 함수를 정의하겠습니다. ▼ append 모드로 해당 경로를 열어줍니다. 그리고 이것을 file 로 명명하겠습니다.▼ 파일을 열어 전달해 줄 데이터 값을 넣고 뒤에는 개행문.. 더보기
Web Crawler 002 - Creating Crawled files and Queue 이번 시간에는 지난 시간에 프로젝트(폴더)를 만드는 코딩에 이어, 웹사이트를 크롤링할 때 크롤링해야 할 웹페이지들의 URL 값을 가지고 있어야 하는데, 그렇게 하기 위해서 queue를 만들어 긁어 올 웹페이지 주소를 넣어 두려고 합니다. 이렇게 queue에 저장된 웹페이지 URL 을 가지고 다 긁어왔으면 해당 URL을 crawled 로 넘겨주어 더 이상 중복 크롤링하지 않게 하려고 합니다. 말보다는 코딩을 보는게 더 빠를거라 봅니다. 시작해 볼까요~? 히위~꼬우~! 지난 시간에 만든 부분에 아래와 같이 주석을 달아 주었습니다. 그리고 이번에 만들 부분에 주석도 함께 넣었습니다. 프로젝트 이름과, 기본 주소를 인자로 받는 파일을 만들어 줄 함수를 아래와 같이 정의하겠습니다. ▼ 기본 URL 을 가지고 어떤.. 더보기
Web Crawler 001 - Creating a New Project 요즈음 들어 귀찮이즘으로 만사를 내 팽개쳐두고 있는데, 블로그를 방문하는 많은 분들이 Python Web Crawling 에 질문을 많이 주시고, 또 방문 로그를 보아도 대부분 Web Crawling 으로 접속을 많이 하시는 듯 하여, 그 후속편을 살짝쿵~ 써보려고 자판을 두드려 보려고 합니다. 혹시 크롤링이 어떤 것인지 잘 모르시는 분은 아래 링크를 한번 보시면 도움이 되시리라 봅니다. [PYTHON 3] Tutorials 24. 웹 크롤러(like Google) 만들기 1 - How to build a web crawler [PYTHON 3] Tutorials 25. 웹 크롤러(like Google) 만들기 2 - How to build a web crawler 예전에 간략히 다룬 웹 크롤러는 블로그.. 더보기
[PYTHON 3] Tutorials 45. Struct (bytes data <-> normal data(human readable)) 안녕하세요. 이번 시간에는 Struct 에 대해서 알아보도록 하겠습니다. 파이썬에서 Struct이 무엇인지부터 얘기를 시작해볼까 합니다. 파이썬에서는 어떠한 형태의 데이터, 가령 numbers, letters, string 와 같은 데이터를 bytes (0,1 으로 이루어진 바이너리 형태의 데이터) 데이터로 converting 할 수 있습니다. 그럼 왜 이렇게 bytes 형태의 데이터로 전환을 할까요? 이는 우리가 사용하는 컴퓨터가 데이터를 저장하거나 네트워크를 통해 이러한 데이터를 주고 받을 때, 이진형태의 bytes data( 0, 1 )로 데이터를 다루기 때문입니다. 그러나 이런 형태의 데이터는 인간이 확인하여 인지하기는 힘든 점이 있습니다. 그러므로 평소에는 인간들이 읽을 수 있는 형태로 스크린에.. 더보기