디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[일반] 기사 검색 프로그램 겨우 다 만들었다

사밀(14.39) 2021.12.05 16:16:47
조회 352 추천 0 댓글 12
														


viewimage.php?id=3da4c42eeadc&no=24b0d769e1d32ca73deb85fa1bd8233c97e79f71135318a7c9f45b6bfb06339248460d71458e3a42ce9b5c2fcd56dbca3e46b9ab76e729c8a7c5016d29117821278a



실행하면 이런 거 뜨는데




viewimage.php?id=3da4c42eeadc&no=24b0d769e1d32ca73deb85fa1bd8233c97e79f71135318a7c9f45b6bfb06339248460d71458e3a42ce9b5c2fcd56dbca3e46b9ab76e772cefc9650372c15783bf1e6



2

여기서 기사 검색 조건들 입력하라는대로 입력하면


밑에 짤 처럼 기사기재일자 / 기사제목 / 하이퍼링크 순서로 쭉 나열된 상태로 엑셀파일 저장되고

os.startfile(~~~) 이걸로 작업 끝나자마자 자동으로 엑셀파일 열리게 해놓음. (근데 사실 엑셀파일 열면 열너비 조정 안 된 상태로 열려서 더블클릭 두 번은 해줘야됨;; 그거 더블클릭 두 번 하는 거 대신 해주는 거 구현해놓는답시고 openpyxl import 하고 코드 한 두 줄 더 넣는 게 효율적인건가 싶기도 하고... 는 사실 핑계이고 그냥 귀찮아서 열너비 조정하는 거 빠르게 구글링 해서 넣을 생각조차 안 듦... 내년에 전체적으로 개선하면서 이것도 보완할 예정)


viewimage.php?id=3da4c42eeadc&no=24b0d769e1d32ca73deb85fa1bd8233c97e79f71135318a7c9f45b6bfb06339248460d71458e3a42ce9b5c2fcd56dbca3e46b9ab76e725c8fdc45038261b78217f7a


3

저 시기쯤에 엔씨 슈퍼개미 기사랑 NFT 관련된 기사 똑같은 거 엄청 올라온 셈 치고는 적당히 쳐낼만한 기사 쳐낸 거 같기도 하고.. 아닌 거 같기도 하고...


원래는 konlpy인가 그걸로 형태소 뽑아서 명사 / 동사 정리한 다음에 유사도 분석 돌리려고 했는데

설치 과정에서 자바 설치하고 환경 구축하라고 하는데 똑같이 해도 안 되길래 포기하고 (어차피 공유목적이라면 제한이 있을 거 같기도 하고)

아쉬운대로 특문 다 제거하고 띄어쓰기 기준으로 분리한 다음에 그걸로 유사도 분석 돌려서 일정 수치 이상 유사하면 삭제하는 식으로 for 문 돌려서 구현함.

좀 생각해보니까 어차피 기사 제목이란 게 명사 위주로만 나열한 게 대부분이니까 일단은 아쉬운대로 이 정도만 되어도 괜찮은 거 같기도 한 듯...

(예: 거래소, 엔씨소프트 '5000억 슈퍼개미' 거래내역 들여다본다. >>> 이거에서 특수문자 다 날리면 거래소 엔씨소프트 5000억 슈퍼개미 거래내역 들여다본다)


근데 노가다로 인간 딥러닝을 통해서 어느 정도 수치가 적당한가 확인해보려니까 진짜 천차만별인 거 같아서 그냥 input() 구현해서 이용자의 선택에 맡기기로 함.


만들고 보니 별 거 아닌데

항상 이런 거 만들면서 느끼는건

뭔가 아이디어 머릿속으로 혼자 그려서 이거 이렇게 이렇게 하면 되겠지? 하고 로직 다 정리된 상태에서 코드 치다보면

진짜 생각지도 못한 부분에서 3~4 시간 이상 그냥 순삭되는 경우가 많은 듯.

기초가 부족하기도 하고 원래 그런건가 싶기도 하고;;;


이것도 겨우 새벽까지 밤새가면서 만들었는데도 자꾸 Key Error 떠서 뭐지 하다가 포기하고 잠들었는데

자고 일어나서 다시 코드 한줄 한줄씩 돌려가면서 확인해보자는 마인드로 천천히 확인해봤는데


pandas에서 인덱스하는 게 그냥 파이썬 고유의 '순서'를 뜻하는 게 아니라 판다스 자체 데이터의 index 번호를 동시에 의미하기도 해서 여기서 계속 에러가 떴던 거였음.

대충 데이터프레임의 5번째 행을 인덱스하고 싶어서 [4]를 뒤에 붙였는데 이게 데이터가 한 번 정리된 상태에서 index 번호가 뒤죽박죽인 상태에서 [4] 이런 식으로 찾아들어가다 보니까 에러가 오지게 떴던 거..


그러면 고유한 위치를 찾아들어가는 식으로 코드를 구현하거나 index를 reset해서 값이든 위치든 상관없이 잘 찾아들어가게끔 dataframe 자체를 정리하는 방법이 있을 거 같은데

당장 index를 reset하는 코드 찾는게 쉬운 거 같아서 바로 구글링 해서 해결하고 이제 됐다 싶어서 돌려보는데


또 되다가 안 되다가 이상하게 꼬이길래


이것저것 또 이유를 파악해보다가 하염없이 시간 보내고..


걍 이럴 바엔 라이브러리를 싹다 지우고 다시 깔아보자는 마인드로, 가상환경에 깔린 관련된 라이브러리 다 지우고 새로 다 설치함.


그렇게 돌리니까 갑자기 가상환경에 openpyxl이 설치 안 되어 있다고 뜨길래 "뭐지 이거 첨 보는 에러코드인데... 원래 pandas 설치할 때 같이 설치하는 거 아닌가" 싶었는데 당장은 원인 해결방법이 너무 명확하니까 openpyxl 설치해서 에러 코드 없이 성공했는데


기존에 위에 짤처럼 하이퍼링크 잘만 달려서 엑셀파일에 구현되던게

갑자기 그냥 텍스트로만 구현되는 거...

사실 링크 복사해서 브라우저 가서 손으로 붙여넣을 거면 이거 만드는 의미 퇴색되니까 어떻게든 또 구현해보려고


pandas랑 openpyxl 버전도 낮춰봤는데 그래도 하이퍼링크가 안 붙여지는 거..


아 시바 뭐지... 왜 되다가 안 되노...

하다가 아까 원래 openpyxl이 없었어도 에러코드 안 떴는데 갑자기 openpyxl 에러코드 뜨는 바람에 설치했다는 사실이 생각나서

이거 혹시 pandas 엔진을 기존에 xlsxwriter인가 그거 쓰다가 어찌어찌 삭제하고 다시 깔고 하면서 openpyxl 쓰도록 바뀌었나? 그래서 openpyxl 없다는 에러코드도 안 뜨다가 갑자기 뜨기 시작한건가?

라는 생각이 들어서 구글링으로 xlsxwriter로 pandas 엔진 바꾸는 거 찾아서 그거 구현하고, xlsxwriter 모듈 설치하고 돌리니까 다시 원래대로 하이퍼링크 붙여진 채로 나옴.


교훈: DataFrame.to_excel(~~.xlsx)를 할 때는 인수로 engine=xlsxwriter를 추가해주면 하이퍼링크 텍스트에는 하이퍼링크가 붙여진 상태로 엑셀파일이 저장된다.

일단 나는 그랬음


이 정도로 삽질하다 보니까 그래도 그럭저럭 내 나름대로 만족할만한 결과물이 나오기는 나온 거 같아서 불편한 마음이 싹 사라짐

기본적으로 jupyter notebook이나 vs code 돌아가는 방식을 몰라서 평소 코드 짤 때는 jupyter notebook으로 짜는데

실행파일로 만들 때는 그거 .py로 내려받은 다음에 vs code에서 적당히 작업해서 바로 프롬프트에서 pyinstaller 돌림

근데 계속 .exe로 만든 다음에 에러코드 확인하고 다시 삭제하고 다시 만들고 에러코드 확인하고 그런 뻘짓 하다가

그냥 명령 프롬프트에서 바로 python 명령어로 .py 실행하면 된다는 걸 몇 시간 전에야 다시 깨닫고 그 때부터는 그나마 에러코드 처리하는데 좀 수월했던 듯...



근데 사실 이것도 최종 완성작은 아닌게,,

특정 조건에서만 '우연히' 코드가 잘 돌아가는 것일 수도 있으니까 여러 조건으로 이리저리 돌려보는데 특정 검색어와 / 특정 기간을 설정했을 때에는 웹스크래핑 하는 단계에서 계산된 로직과 다른 결과물이 떠서 에러코드가 뜨는데 어떤 조건에서 에러 발생하는지만 기록해두고 내년쯤에 체크해보는 걸로....


기사제목이랑 기사 하이퍼링크는 html에서 특정 class에 한 군데에 묶여서 같이 움직이니까 처리하기 쉬운데

기사일자는 동떨어져서 따로 움직이는데다가 고유한 class 이름도 아닌 거 같아서 다른 문자까지 같이 끌고오는 거 if와 elif 등으로 처리하면서 데이터프레임에 집어넣는데 이 과정에서 데이터 개수가 안 맞아서 데이터프레임이 안 만들어지는 오류인 거 같기는 함...

이게 다 beautifulsoup을 날림으로 공부(?)하고 하나도 이해 안 된 상태로 동영상 강의에서 보여준 샘플 코드만 가지고 이리저리 응용하면서 구현한 대가인 듯..

뭔가 그 상황에서도 딱딱 맞춰서 필요한 데이터만 뽑아올 수 있는 방법이 있을 거 같긴 한데..


그리고 만들면서 생각난건데

코스피 / 코스닥 상장사 관련 키워드 같은 경우에는

기사검색일자 설정한 거에 맞게 주가정보도 끌고와서 그래프 쭉 그린 다음에

주가 움직임이 크게 튀는 일자에는 기사 리스트에 따로 표시해 두는 식으로 구현하는 것도 괜찮을 거 같긴 함


그러면 몇 달 동안의 해당 기업 관련 주요 이슈를 수많은 기사 중에서 콕 찝어내는 걸 훨씬 더 효과적이고 효율적으로 할 수 있을 듯.



그리고 엔씨소프트처럼 기사가 좀 많이 뜨는 키워드의 경우에는 데이터 긁어오는 시간과 중복 처리하는 시간이 생각했던 것보다 꽤 오래걸림..

한달 반 정도 조건으로 검색해봤는데 계속 돌아가길래 뭔가 에러가 있나 생각들 정도로..

다 정리하고 나서 저장된 데이터 보니까 400개 좀 넘는 걸로 봐서는 원래는 1000개, 2000개도 훌쩍 넘었을 거 같은데 그런 거 치고는 괜찮은 편이긴 한건가...


근데 이중 for문으로 두개씩 비교해서 유사도가 높으면 아래에 있는 걸 공란으로 만들어놓고 나중에 한 번에 null값 다 날리는 식으로 했는데

처음 유사도 검사할 때 유사도 높은 거 식별되는 즉시 그 행은 날리는 식으로 구현하거나

아니면 if 문으로 null값이 들어가는 경우에는 유사도 계산 안 하고 바로 pass 하는 식으로 구현하면 시간 훌쩍 줄어들긴 할 거 같은데 이것도 일단 내년에 할 예정.



그래도 몇 개월 전에 이런 거 있으면 좋지 않을까 라는 말을 직장에서 주워듣고

5년 이내에는 구현하는 걸로 목표한 셈 치고는

되게 빠르게 만든 셈이니까 좀 뿌듯하긴 함.

만드는 과정이 재미있기도 했고...


갤을 일기장처럼 쓰는 거 같은데 그냥 잡소리라고 생각하셈 ㅋㅋ


끝.


0

고정닉 0

0


추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
- 설문 해외에서 겪는 불합리한 대우에 대응 잘 할 것 같은 스타는? 운영자 25/11/03 - -
- AD 저녁 뭐먹지? 오늘의 메뉴 추천! 운영자 25/10/31 - -
635 공지 가독성 좋은 f-string 을 쓰자 [9] 주넹갤로그로 이동합니다. 21.10.02 3612 10
1056 공지 (공지 요청)[질문지 양식] 복붙해 쓰시오. [4] 203.121.116.11갤로그로 이동합니다. 21.12.14 2524 5
634 공지 질문 올릴때 [2] 주넹갤로그로 이동합니다. 21.10.02 2678 5
178 공지 파이썬 공부할 때 참고할만한 것들 [7] 주넹갤로그로 이동합니다. 21.04.21 8331 7
1 공지 파이썬 미니 갤러리입니다. [9] 주넹갤로그로 이동합니다. 20.12.14 3426 7
2627 일반 진짜 코딩 과제 감을 못잡겠음 [4] ㅇㅇ(118.235) 10.31 39 0
2626 일반 ㄴㄷㅋㄷ 이거 5년전거 아님? 5년 전거로 공부해도되는거야? ㅇㅇ(118.37) 10.25 22 0
2625 일반 맥OS로 공부하는거 별로일까요? [1] ㅇㅇ(118.37) 10.25 33 0
2624 일반 입문 파이썬 공부하려는데요 인강좀 추천해주세요! ㅇㅇ(118.37) 10.25 45 0
2623 일반 코딩 1도 모르는데 [5] ㅇㅇ(119.199) 10.13 87 0
2622 🔎질문 셀레니움 값이 입력이 안되는 현상이 있습니다 ㅇㅇ(39.124) 10.09 49 0
2621 일반 혼자공부하는파이썬 점프투파이썬 [1] ㅇㅇ(211.246) 09.18 157 0
2620 일반 님들이 싫어하는거 사용자 이름 없음(182.228) 08.05 88 0
2619 🔎질문 고등학생인데 질문 있어요. [3] ㅇㅇ(118.221) 07.30 166 0
2618 🔎질문 셀레니움으로 이미지 직접 다운로드 하는 방법 [1] ㅇㅇ(39.7) 07.14 97 0
2617 일반 ㄴㄷㅋㄷ 6시간짜리 5년전꺼라 버전이 달라서 어려움 [1] 빨간망토갤로그로 이동합니다. 05.30 184 0
2616 일반 파이썬 아다 떼려면 책 필요없고 ㄴㄷㅋㄷ 보면됨? [2] 빨간망토갤로그로 이동합니다. 05.23 333 0
2615 일반 7월부터 C언어 파이썬 동시에 해야하는데 [3] ㅇㅇ(118.235) 05.19 174 0
2614 🔎질문 라즈베리파이 프로그램 관련 질문 [2] ㅇㅇ(59.25) 05.04 131 0
2613 일반 에라토스테네스-신촌우왕 체식 신촌우왕갤로그로 이동합니다. 04.22 374 0
2612 일반 카메라 영상을 파이썬 flet으로 실시간 출력 작성 해보신분 [2] ㅇㅇ(218.150) 04.03 201 0
2611 🔎질문 혼자 공부하기 파이썬 책 추천좀 해주세요 [2] 토리짜갤로그로 이동합니다. 03.31 330 0
2610 일반 루트 k의 근사값 [1] 신촌우왕갤로그로 이동합니다. 03.28 188 0
2609 일반 루트 2의 근사값 [1] 신촌우왕갤로그로 이동합니다. 03.28 647 0
2608 일반 짝수 완전수 신촌우왕갤로그로 이동합니다. 03.28 114 0
2606 일반 유클리드 호제법 신촌우왕갤로그로 이동합니다. 03.22 149 0
2605 일반 비전공자 생초보 입문자 점프 투 파이썬으로 하면 되나여? [1] ㅇㅇ(223.39) 03.18 496 0
2604 일반 Int로 변환했는데 이구 왜이럴까요 [3] ㅇㅇ(210.126) 03.15 229 0
2603 일반 이거 어떻게 쳐요,,? [2] ㅇㅇ(221.154) 03.13 232 1
2602 🔎질문 고수님들 대학 파이썬 수업듣는데 질문 있어서 왔습니다 ㅠㅠ [2] ㅇㅇ(39.124) 03.11 259 0
2601 일반 파이썬으로 데이터 변형 하고 있는데 [3] ㅇㅇ(221.152) 03.08 198 1
2600 일반 게임에서 마우스 좌표는 다 잘 찍히는데 키보드가 안됨 ㅇㅇ(59.20) 03.04 157 0
2598 🔎질문 누가 좀 도와줘... [2] ㅇㅇ(115.138) 02.07 263 0
2596 🔎질문 점프투파이썬 굳이 책 사야 하나요? [2] 애개뤼를쮀에에엑갤로그로 이동합니다. 24.12.23 700 0
2595 일반 파이썬 윈도우앱에 광고달아보신분..? ㅇㅇ(222.236) 24.12.18 219 0
2594 일반 파이썬 모바일 추천 좀 ㅇㅇ(110.11) 24.12.08 245 0
2593 일반 r스튜디오 도와주십쇼 형님들.. [2] ㅇㅇ(121.154) 24.12.05 299 0
2591 일반 조졌다 [1] delegen(121.181) 24.11.18 276 0
2590 🔎질문 대학 입학전에 파이썬 공부해볼라고 하는데 [2] ㅇㅇ(110.10) 24.11.17 510 0
2589 일반 파이썬 이래 배우면 되나요?? [1] ㅇㅇ(119.195) 24.11.12 467 0
2588 🔎질문 가상환경 라이브러리 글로벌 문제 ㅇㅇ(123.214) 24.11.05 227 0
2587 일반 도와주세요 고수님들 [2] ㅇㅇ(118.217) 24.11.03 352 0
2586 일반 챗GPT 개같네 [2] 초보 파갤러(119.203) 24.10.27 496 0
2585 일반 파이썬 뭐 부터 건드려야함? 정처기 보유 [1] ㅇㅇ(118.216) 24.10.24 357 0
2582 일반 점프투파이썬이랑 나도코딩 입문강의중에 뭐 봐야함? [2] ㅇㅇ(118.235) 24.10.09 558 0
2581 일반 아이패드로 파이썬 [1] 쪼물갤로그로 이동합니다. 24.10.05 297 0
2580 일반 욜로yolo 객체학습 이후에 질문이 있습니다. [1] ㅇㅇ(117.52) 24.10.05 306 0
2579 일반 파이썬 초보 책추천 [20] 쪼물갤로그로 이동합니다. 24.10.05 5570 0
2577 일반 파린이 도와주세요 ㅠㅠ [2] ㅇㅇ(106.102) 24.10.03 291 0
2576 일반 ai로 댓글 다는거 [2] ㅇㅇ(220.95) 24.09.30 302 0
2575 일반 형님들 파이선 입문을 어떻게해야 좋을까요? [4] ㅇㅇ(106.101) 24.09.26 387 0
2574 일반 질문)본인:쌩초보, 나도코딩 따라 중, 목표는 객체인식, 적용은 시골축사 [12] ㅇㅇ(211.117) 24.09.25 484 0
2572 일반 fastapi 만든사람 콜롬비아 출신 고졸임 [1] ㅇㅇ갤로그로 이동합니다. 24.09.15 338 1
2570 🔎질문 도와주세요 파이참 실행이 아예 안되요 ㅠㅠ... [2] ㅇㅇ(211.252) 24.09.02 303 0
2569 일반 pygbag 아시는 분 ㅇㅇ(183.109) 24.08.20 226 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2