프로젝트/COHO - 코인 호재 캘린더 16

[Django] 코호 - 실시간 코인 호재 모음 PROC 6

장고걸스 튜토리얼 진행하며 막힌거 정리 1. 설치하기 파이썬을 삭제하고 설치를 다시했다. 경로를 다시 설정하기 위해서이다. C:\Python\Python39 여기에 설치해 주었다. 저렇게 하면 안됐다. python -m venv myvenv 이렇게 해줬더니 됐다. 이건 친구한테 물어봐서 바로 알아냈다.. 참고로 현재 디렉토리의 위치가 djangogirls여야 한다. cd 명령어로 디렉토리 위치를 하라는대로 이동한 후에 설치든, 실행이든 진행해야 할 것이다. 2. 나의 첫 번째 Django 프로젝트! 현재 디렉토리 위치만 신경써주고 하라는대로 했다. 서버를 중지하려면 3. Django 모델 문제 없음 4. Django 관리자 runserver했을 때 나오는 주소에 /admin을 해주어야 예시 화면처럼 나온..

[Django] 코호 - 실시간 코인 호재 모음 PROC 5

JSON 파일로 변환하는 것까지 해결했다. 속도도 괜찮은 수준으로 만들었다. 16초.. 그리고 주소가 키 값으로 한 딕셔너리를 만들었다. 해결 한 문제 JSON 파일로 변환하기 위해서 데이터를 딕셔너리 형태로 바꾸어주어야 했다. 리스트도 할 수 있다고 쓰여져 있긴 했는데 구글링 해보니깐 거의 딕셔너리로 만들었길래 딕셔너리 변환을 해주었다. 데이터 1개를 포장해야할 키 값으로 url을 사용했는데, url값은 그 정보의 전체 데이터를 나타내고 고유한 값이기에 key로 사용하면 적합하다고 생각했고, 이 또한 크롤링 후 전처리를 통해서 str형태로 바꾸어 주었다. 마주친 문제 find함수 쓸 때 주의 사항 "ATBT" find('T', 2)하면 인덱스 3을 출력한다. 2라는 인자가 2번째 T를 찾아주는 줄 알았..

[Django] 코호 - 실시간 코인 호재 모음 PROC 4

진짜 오류 찾기 힘들었지만 결국에는 내 실수. 하지만 해결해서 기분이 좋다. 해결한 문제 multiprocessing의 Process를 사용한 크롤링 병렬화 마주친 문제 multiprocessing의 변수 공유 검색해보면 알겠지만 (사실 여기서 막힌게 아니다) multiprocessing().Manager().list() 이렇게 리스트 변수를 선언해서 함수의 인자로 넘겨주면 된다. multiprocessing.pool.MaybeEncodingError: Error sending result 'RecursionError('maximum recursion depth exceeded while getting the str of an object RecursionError: maximum recursion de..

[Django] 코호 - 실시간 코인 호재 모음 PROC 3

이론적으로 철저하게 당했다. 해결한 문제 시간을 크게 줄였다. 2분 30초에서 10초 정도까지 줄였다. multiprocessing.pool을 사용했는데, 이게 GPU 사용해서 병렬적으로 처리하는 코드라고 한다. 이론적인것을 잘 모르지만, 이해하려 노력해봤다. 참고로 아래의 코드는 작동하지 않는다. 마주친 문제 페이지의 마지막 번호를 알아내야 한다. 기존에는 while문으로 1부터 42까지 돌려서 41이 마지막인 것을 알아냈지만, pool함수를 써야 하기에 인자를 미리 집어넣어주어야 했다. 그래서 getPageNumberFromcoinmarketcal()함수를 만들어서 마지막 페이지 정보를 크롤링 하도록 했다. 잘 찾아보니깐 >> 버튼에 마지막 페이지번호로 가는 a태그가 있어서 거기서 정보를 얻어냈다. ..

[Django] 코호 - 실시간 코인 호재 모음 PROC 2

순조롭게 진행되는 것 같았지만, 거대한 문제와 마주치게 될 것 같다. 해결한 문제 41페이지 전체를 크롤링 가능. 페이지 url은 뒤에 ?page=번호 이렇게 붙여주면 되기 때문에 1부터 계속 반복시키고, 만약 url이 없다면 반복문을 멈추도록 설계했다. 페이지는 42페이지까지 존재하는데 html.status(url) 함수로 url존재 여부를 판단할 수 있다. 전체 코드 from urllib.request import urlopen from bs4 import BeautifulSoup import re month = { 'Jan' : 1, 'Feb' : 2, 'Mar' : 3, 'Apr' : 4, 'May' : 5, 'Jun' : 6, 'Jul' : 7, 'Aug' : 8, 'Sep' : 9, 'Oct'..

[Django] 코호 - 실시간 코인 호재 모음 PROC 1

코인 호재 정보를 한 곳에 모은 사이트를 만들려고 한다. 프로젝트 이름은 아직 안정했는데 멋진 이름을 구상중에 있다. 두명이서 진행하는데, 나는 크롤링 부분만 맡을 것 같다. 그 과정을 기록하려고 한다. 원래는 DAY 1 , DAY 2 이런식으로 제목을 하려했지만. 하루에 하는 양이 많고 과정의 흐름에 맞게 잘라내기 위해 process 1, process 2 이런식으로 제목을 수정했다. 1. 해결한 문제, 2. 마주친 문제, 3. 해결해야 할 문제 이렇게 정리하겠따..! 우선 크롤링에 대한 저작권적인 문제를 검색해봤다. 국내 판결과, 해외 판결의 사례를 찾아봤고 어차피 개인적인 사이트를 만드는 것이지만, 후에 상업적인 이용을 할지 모르고 그것이 불법이라면 문제가 될 수 있기 때문이다. 국내 판결, 야놀자..