프로젝트(16)
-
주간책톡(부산 도서관) 크롤링 -6 카카오톡 메세지 크롤링, pygetwindow, pyautogui
주간책톡에서 알림톡으로 이번주의 책톡요약이 왔으면 그 링크를 텍스트로 저장해 넘겨주는 형식으로 계획했었다. 하지만 카카오톡을 건드리는게 조금 문제가 있었다. https://namu.wiki/w/%EC%B9%B4%EC%B9%B4%EC%98%A4%ED%86%A1%20%EB%B4%87/%EC%A0%9C%EC%9E%91%EB%B2%95 카카오톡 봇/제작법 - 나무위키 이문서에서 공식봇, 비공식봇의 제작방법을 간략하게 설명한다. 따라서 더 자세히 알고싶다면 관련 커뮤니티 또는 다른 봇 문서를 참고하면 좋을 듯하다. 이 문서에서 설명한 방법대로 봇을 사 namu.wiki 대충 감을 잡기위해서 나무위키를 참고했는데 LOCO 프로토콜의 개념을 겉핥았고, 다른 언어들의 작동 로직도 대충 알게되었다. https://git..
2023.05.01 -
구글 트렌드 봇 -1
인사이트나 데이터 셋을 만들기 가장 좋은 것은 직접 수집하는 것이다. 내가 형식을 설정할수도 있고, 내 입맛에 맞는 정보들을 얻을 수 있기 때문이다. 또한 남의 영향을 덜 받는다. 한국에서 그나마 가장 중립적인 시선이 구글 실시간 검색 같아. 구글 트렌드를 크롤링 하여 데이터셋으로 모아보기로 하였다. from selenium import webdriver from selenium.webdriver.common.by import By import time url = "https://trends.google.co.kr/trends/trendingsearches/daily?geo=KR&hl=ko" chrome_driver_path = 'path/to/chromedriver' driver = webdriver...
2023.04.29 -
통합 슬랙api 전송(텍스트, 이미지)
import requests def send_slack_image(api_token, channel, image_path=None, message=None): if image_path: url = "https://slack.com/api/files.upload" headers = { "Authorization": f"Bearer {api_token}" } # HTTP 요청을 보낼 때 인증 헤더를 설정 # 인증 헤더는 API 호출에 필요한 인증 정보를 제공하는 데 사용되며, # 이 경우 API 호출에 필요한 Bearer 토큰을 전달 # Bearer 토큰은 OAuth 2.0 인증 방식에서 사용되는 액세스 토큰의 한 형태 # OAuth 2.0은 API 호출에 필요한 권한 부여 및 인증을 처리하기 위한 프로토콜..
2023.04.28 -
주간책톡(부산 도서관) 크롤링 -5 페이지를 순회하며 크롤링
이제 요약이 있는 링크들을 순회하며 크롤링 할 차례다. link열의 내용을 하나씩 출력이 되는 것을 확인하고, book_summary = driver.find_element(By., "book_summary") class = "book_summary" , id = "bookSummary" . class 를 기준으로 요소를 찾으면 위의 음성파일을 깨진형태로 받아서 id 값으로 요약문을 지정해 주었다. 위의 기능을 구현한 모듈들을 차례대로 조립하여, index_length = book_df.shape[0] book_summary_list = [] for i in range(index_length): tmep_url = book_df['link'][i] driver.get(tmep_url) time.sleep..
2023.04.27 -
주간책톡(부산 도서관) 크롤링 -4 표의 형태를 어떻게 api 로 전송하지?(tabulate, matplotlib)
앞서서 이런 형태의 dataframe 을 얻었다! 그런데 이걸 슬랙 api 를 이용해 봇으로 보내려면 어떤 방법이 있을까? 크롤링 한 순서대로 1. 제목[1], 2. 저자[1], 3.출판사[1] .... 이런식으로 하나씩 보내기. 리스트 형태로 묶어서 리스트 씩 보내기 표 형태로 사진으로 보내기 등등.. 당신이 한 생각은 이미 누군가가 생각 했었다. 사업할때나 뭔가 아이템을 가지고 상업적으로 이용해보려면 화가나는 말이지만, 문제를 해결 하는 입장에서는 정말 기쁜 말이다. 뉴턴이 거인의 어깨위에 앉았기 때문에 더 멀리 볼수 있었다.말처럼. 누가 먼저 고민을 해줬다는 것이다! 물론 (대부분의) 해결방법도! import pandas as pd import matplotlib.pyplot as plt impor..
2023.04.26 -
주간책톡(부산 도서관) 크롤링 -3 책 정보를 dataframe화 (pandas)
temp_book_titles = driver.find_elements(By.CSS_SELECTOR, "h3:not([class]) > a") book_titles_list = [] for title in temp_book_titles: book_titles_list.append(title.text) print(book_titles_list) book_link_list = [] for summary in temp_book_titles: book_link_list.append(summary.get_attribute('href')) print(book_link_list) selenium.webdriver.remote.webelement.WebElement 타입들을 str 타입으로 정리해준다. (원래 발생했던..
2023.04.25