Dev/Python [워드클라우드] 파이썬으로 워드클라우드 만들기 아주쉬워요 일단 워드클라우드를 만들기 위해 필요한 라이브러리들을 임포트해줍니다 numpy와 PIL 라이브러리는 원하는 모양의 워드클라우드를 만들기 위하여 필요합니다. from wordcloud import WordCloud import matplotlib.pyplot as plt import numpy as np from PIL import * 원하는 모양의 이미지를 불러와줍니다! 저는 동그랗게 만들어주기 위해 동그랗게 생긴 이미지를 가져왔어요 circle.jpg #워드클라우드의 모양 설정. 원모양의 이미지를 그대로 가져와 만들도록 하였음. cand_mask=np.array(Image.open('circle.jpg')) 이제 워드클라우드에 넣을 데이터만 있으면 됩니다. 저는 아무렇게나 임의의 데이터를 만들었어요! .. By domdomi · 2022. 6. 9.
Dev/Python [python] CSV파일 리스트/딕셔너리가 문자열로 되어있어요 해결방법! CSV파일을 판다스로 읽어왔는데 리스트 또는 딕셔너리가 문자열로 읽힐 때 아주 쉬운 해결방법! (판다스 뿐만 아니라 DB에 저장되어있는 등 ... 모든 문자열에 해당) 제가 읽어온 데이터에는 geojson 좌표데이터가 들어있어요. 대부분의 좌표데이터는 딕셔너리 내에 여러 리스트들로 만들어져있는데, 문자열로 저장되어보입니다 0번째 인덱스의 데이터를 출력해보니 데이터타입이 문자열이네요. 문자열이 아닌 데이터를 정상적으로 불러오는 아주 쉬운 방법!! literal_eval 라이브러리를 사용하는 것입니다 아래는 사용예시입니다 from ast import literal_eval literal_eval('[1.23, 2.34]') # 위 코드가 에러나면 eval('[1.23, 2.34]')로도 시도해보세요 lite.. By domdomi · 2022. 5. 26.
Dev/Python [pymongo] pandas csv파일을 mongoDB에 한꺼번에 insert하는 방법 pandas를 이용한 csv파일데이터를 몽고DB에 삽입하는 아주아주 쉬운 방법! 먼저 라이브러리 임포트와 몽고DB를 연동합니다 from pymongo import MongoClient import pandas as pd client = MongoClient(localhost, username='admin', password='1234', authSource='admin', authMechanism='SCRAM-SHA-256') #database db = client.get_database('test1') #collection cl = db.get_collection('test1_collection') 몽고DB에 삽입하려는 CSV파일을 판다스로 불러와 몽고DB 컬렉션에 인서트해주면 끝..!!!!!! fil.. By domdomi · 2022. 5. 25.
Dev/Python [django] 장고 accounts/login 로그인/로그아웃 로그 저장하기 장고의 accounts/login을 이용하여 로그인/로그아웃을 구현해놓은 상태, 이렇게 구현하면 views.py에 로그인/로그아웃 관련 페이지 없이 기능이 구현됩니다 따라서 로그인폼에 action받는 경로가 없죠 그럼 어떻게 로그인/로그아웃 로그를 저장할까요? 아래는 스택오버플로우에서 가져온, 로그인, 로그아웃 시 누가 로그인을 했는지 ip, user정보를 가져올 수 있는 코드입니다 import logging from django.contrib.auth.signals import user_logged_in, user_logged_out, user_login_failed from django.dispatch import receiver log = logging.getLogger(__name__) @rece.. By domdomi · 2022. 4. 21.
Dev/Python [django] django templatetag date 날짜형식 맞춰넣기 장고에 디폴트로 들어있는 sqlite3에 계정을 만듭니다 python3 manage.py createsuperuser 계정리스트를 쭉 출력하다보면 계정마다 date_joined 를 가지고 있습니다 가입한(계정을 생성한) 날짜이죠 이는 utc 시간이므로 한국시간에 맞추려면 +timedelta(hours=9)를 해주어야 하구요 views.py에서 가입날짜를 포함한 계정정보를 template에 넘겨줍니다 from django.contrib.auth.models import User from datetime import datetime, timedelta def test(request): user = list(User.objects.values()) for n in user: n['date_joined'] +=.. By domdomi · 2022. 4. 19.
Dev/Python [오류해결] ModuleNotFoundError: No module named 'pwd' 일단 저는 파이썬 3.9를 사용하고 있는데요. 어느날 특정 모듈을 설치하구서 실행했더니 다음과 같은 오류가 나더군요. > python binwalk nothing.jpg Traceback (most recent call last): File "C:\Python39\Scripts\binwalk", line 4, in __import__('pkg_resources').run_script('binwalk==2.3.3', 'binwalk') File "C:\Python39\lib\site-packages\pkg_resources\__init__.py", line 651, in run_script self.require(requires)[0].run_script(script_name, ns) File "C:\Py.. By 알 수 없는 사용자 · 2022. 4. 17.
Dev/Python [Python] Query String to Dictionary - URL 파라미터를 Dict로 만드는 법 단순히 URL 파라미터(query string)만 dictionary 포맷으로 만드는 법은 아래와 같습니다. from urllib.parse import parse_qsl query_string = 'isHttpsRedirect=true&blogId=domdomi&logNo=123456&parentCategoryNo=&categoryNo=12&viewDate=&isShowPopularPosts=false&from=postView' parsed = dict(parse_qsl(query_string)) print(parsed) ''' {'isHttpsRedirect': 'true', 'blogId': 'domdomi', 'logNo': '123456', 'categoryNo': '12', 'isShowPop.. By 알 수 없는 사용자 · 2022. 3. 10.
Dev/Python [Python] 파이썬으로 이미지 합치기/추가하기/워터마크 넣기 말머리 최근에 블로그 글을 쓰면서 계속 반복되는 행동 중 하나가 바로 이미지에 워터마크를 삽입하는 작업이었습니다. 예를 들어 하단의 좌측 이미지에 하단 우측의 돔돔이블로그 워터마크를 넣는다고 생각해봅시다. 참고루 우측의 돔돔이블로그 워터마크는 배경색이 투명색입니다. 위 사진에서는 임시로 검정색으로 해둔 것입니다. 워터마크 넣어보기 위에서 보았던 좌측의 메이플스토리 이미지 파일이름이 maple_image.png 이고, 우측의 워터마크 이미지 파일이름이 watermark_image.png 입니다. import PIL my_image = Image.open('maple_image.png') watermark = Image.open('watermark_image.png') watermark = watermark.. By 알 수 없는 사용자 · 2022. 2. 9.
Dev/Python [mongoDB] pymongo 3.7 버전부터 collection.count()가 안된다!!! 몽고DB를 새로운 서버에 깔고 똑같이 작업하려고 했는데 갑자기 잘 돌아가던 구간에서 오류가 나더군요... 바로 몽고DB 컬렉션의 총 데이터 수를 구할 때 (collection.count())의 오류였어요!! 이 count() 방법은 pymongo3.7 버전 부터는 더이상 사용되지 않는다고 합니다. 하지만 총 데이터 수를 구하기 위해서 count() 대신에 count_documents()를 사용하면, 데이터가 정말 많다면,,,, 정말정말 오랜 시간이 걸립니다. aggregate 할때도 index가 먹히지 않더니, count_documents도 마찬가지인가 봅니다 ㅠㅠ 집계 쿼리를 수행하고 메타데이터를 사용하지 않는다고 하네요. 그래서 count(), count_documents() 대신에 collectio.. By domdomi · 2022. 2. 8.
Dev/Python [Django] django.db.utils.OperationalError: near "[]": syntax error 오류해결 우선 저는 저 오류가 났을 때 아래와 같은 명령어를 실행했을 때 났습니다. python manage.py makemigrations python manage.py migrate 저는 makemigrations 까지는 잘 되었는데, migrate 하니깐 오류가 막 나면서 아래와 같은 결과가 나왔습니다. C:\Users\DomDomi\Desktop\Crawler\new-crawler-server>python manage.py migrate Operations to perform: Synchronize unmigrated apps: actor, community, crawler, user Apply all migrations: admin, auth, contenttypes, sessions Synchroniz.. By 알 수 없는 사용자 · 2022. 1. 28.
Dev/Python [Python] 파이썬에서 무한루프(while문) 탈출하는 법 - break, exit, except Python 에서는 기본적으로 아래 코드와 같이 while 문에서 탈출하기 위해서는 break 를 사용해서 탈출하는데요. end_of_page = False while True: # ...생략... if end_of_page == True: break else: continue 하지만 특정 조건이 따로 존재하지 않고, 무한하게 돌아가야 하는 상황이 있다고 가정하면 어떨까요? 예를 들어 제가 요즘 공부하고 있는 웹 사이트를 무한하게 크롤링해서 데이터베이스에 저장하도록 하는 크롤러 같은 파이썬 프로그램에서의 경우처럼 말이죠. 이런 경우에는 무한히 돌아가도록 해야합니다. 다만, 임시로 특정 부분에서 잘 돌아가는 지 또는 어떤 오류가 나는 지 확인하기 위해서라면 어떨까요? 물론 파이썬 디버거를 활용해서 이런 문.. By 알 수 없는 사용자 · 2022. 1. 28.
Dev/Python [크롤링] 파이썬 크롤링 시 기기 차단 우회하기 (fake-useragent 사용법/user-agent 사용법) 개요 파이썬에서 웹 크롤러를 만들 때 가장 큰 어려움은 역시 웹 사이트에서의 크롤러 또는 자동화 도구의 차단인 것 같습니다. 이런 경우 보통 time.sleep(3) 과 같이 몇 초간 크롤러를 쉬도록 하는데, 최근에 나오는 웹 사이트들을 차단 방법들이 더 다양해져서 이제는 동일한 기기에서 짧은 시간동안 여러 요청을 했을 경우에 차단하기도 합니다. 물론 동일한 기기를 판단하는 기준이 IP주소라면 별로 할 말이 없지만, IP주소가 아닌 User-Agent 값이라면 차단 우회 방법으로 User-Agent 값을 수시로 변경해주는 것으로 생각할 수 있습니다. 사실 크롤러에서 User-Agent 값은 일정한 데이터를 웹사이트로부터 응답받기 위해서 사용되는 중요한 요소입니다. 예를 들어 어떤 웹사이트의 경우 반응형으.. By 알 수 없는 사용자 · 2022. 1. 27.