본문 바로가기

urllib

실시간 내 주가를 알려주는 Python Code 이번에는 실시간 주식 데이터를 가져와서 시시각각 동향을 출력하게 하려고 한다. 그 후에는 내가 보유한 종목의 주가 흐름을 계속 추적하고, 더 나아가 컴퓨터가 보유종목의 주가를 계속 오디오로 알려주게 하는데까지 알아보려고 한다. 포털사이트 다음의 증권에 올라오는 종목 시세를 참고하였다. 옛날 같으면 포털사이트에서 제공하는 주가는 20분 지연 시세를 제공하여 효용성이 많이 떨어졌던게 사실이다. 그러나 이제는 실시간 시세를 제공하고 있으므로, 증권사에서 제공하는 데이터 못지않게 빠르고 정확하다. 그래서 다음 사이트의 데이터를 가지고 와서 뚝딱뚝딱 기름칠해서 내가 필요로 하는 정보만을 추출하였다. 아래는 그 코드이다. import urllib.request, time, os, re, csv, sys def fe.. 더보기
파이썬을 이용한 구글 이미지 다운로더 만들기 | Making Image Downloader from google image by using Python 글을 쓰거나, 이미지 작업을 필요로 할 때, 인터넷 상에서 많은 이미지들을 검색 및 다운, 활용하는 사례가 많을 수 있다. 그럴 때마다 인터넷에 접속해서 관련 이미지를 찾아서 다운받고 활용하는게 상당히 번잡스럽게 느껴지곤 한다. 이를 위해 누군가 관련 이미지들을 폴더에 다운받아 놓아주었으면 할 때가 있는데, 걱정마시라(?) 우리에게는 프로그래밍 언어가 있다. 이번에는 파이썬으로 내가 필요로 하는 이미지를 하나의 폴더에 좌~악 받아주게 해 보려고 한다. 언제나 그렇듯, 이걸 왜 만들어 할 때가 있는데, 같은 작업을 계속 반복적으로 하는 것 보다, 단순 반복작업은 그냥 컴퓨터가 알아서 하게 만들어두면 얼마나 편하겠는가. 우리는 호모 사피엔스이다. 구석기 시대의 유물인 노가다 작업(?)은 그만 두시라. 처음부.. 더보기
Web Crawler 012 - Domain Name Parsing - 도메인 네임 파싱하기. 안녕하세요. 이번 시간에는 크롤러가 어느 웹사이트를 크롤링 할지를 정해주는 도메인 네임에 대해 알아보고자 합니다. 인터넷은 참으로 광범위한 공간이죠. 만약 이러한 공간을 특별한 조건없이 크롤링하게 한다고 하면 어떻게 될까요? 아마도 내 컴퓨터의 모든 자원은 전세계 인터넷을 뒤지고 다니느라 바빠질 것입니다. 이러한 무한 루프를 방지하기 위해서는 특정한 조건을 주어 이 범위를 만족하는 사이트들만 크롤링 하라고 명령을 내려야 할 것입니다. 그래서 필요한 것이 도메인 네임입니다. 제 블로그를 기준으로 얘기를 하자면, 여기의 주소는 https://creativeworks.tistory.com 입니다. 여기에서 도메인 네임은 tistory.com 이 됩니다. 만약 tistory.com 을 제가 혼자 다 사용하고 있.. 더보기
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() 안에.. 더보기
[PYTHON 3] Tutorials 23. Downloading Files from the web - 파일 다운로드 하기 using 파이썬 안녕하세요. 이번 시간에는 지난 시간의 이미지(사진) 다운받기에 이어 파일을 다운받아 보도록 하겠습니다. 이미지 다운과는 약간 다르지만, 크게 어렵지는 않으니 느긋하게 읽어보시면 쉽게 이해할 수 있을 겁니다. 그럼 시작하겠습니다. 주식 분석을 위한 시세 자료를 다운 받기 할 예정입니다. 이제까지는 import 뒤에 불러올 모듈명을 바로 적어 주었습니다. 그런데 아래 그림은 앞에 from 을 적어주고 import 뒤 모듈명을 적어 주었네요. 이는 추후에 클래스를 다룰때 보다 자세히 설명드려야 할 사항이므로 지금은 그냥 넘어가셔도 무방합니다. ▼ 주식 관련 CSV(Comma Separated Value)파일을 찾아보았는데, 야후 파이낸스에 올라와 있더군요. 그래서 'finance.yahoo.com'으로 접속.. 더보기
[PYTHON 3] Tutorials 11. Function 안녕하세요. 이번 시간에는 Function(함수)에 대해서 알아보도록 하겠습니다. 프로그램을 공부하시면 대부분의 프로그래밍 언어에서 함수를 얘기합니다. 그럼 함수를 왜 사용하고 어떤 것일까요? 단순하게 생각해보면 재사용성 이라고 말할 수 있을것 같습니다. 똑같은 역할을 하는 코드가 여러번 사용되면 이를 한번 만들어 두고 argument or parameter (함수를 만들때 전달해주는 값들) 값들만 바꾸어 주면 반복적으로 여러번 사용할 수 있을 것입니다. 이로 인해 가용 자원 절약, 코드 가독성 향상 등등 많은 이점을 꾀할 수 있게 됩니다. 각설하고 시작해 보겠습니다. 파이썬에서 함수를 정의할 때에는 앞에 def (definition: 정의) 함수명(전달할 인자): 이렇게 사용할 수 있습니다. def f.. 더보기
[PYTHON] Python을 이용한 웹사이트 스캐너 만들기 - 5. robots.txt 이번 시간에는 robots.txt 에 대해 알아보려고 합니다. robots.txt 파일이 어떤 역할을 하냐면, 웹을 만들때 구글이나, 야후, 네이버, 다음과 같은 검색엔진에서 크롤링(사이트를 프로그램으로 자동 저장하는것)을 하는데 이때 민감한 페이지나 관리자 페이지 같은것은 크롤링 하지 못하게 텍스트 파일 형태로 작성해 둔 것입니다. 보다 자세한 사항은 Robots.txt 링크를 참조하시면 이해하실 수 있을것 입니다. 자 그럼 시작해 보겠습니다. 1. 우선 robots_txt.py 파일을 만들어 주고 import urllib.request 를 작성해 줍니다. urllib 와 request 는 웹과 관련된 파이썬 모듈입니다. 2. io 또한 임포트 해줍니다. 3. get_robots_txt 함수를 정의하고.. 더보기