프로젝트/주간책톡(6)
-
주간책톡(부산 도서관) 크롤링 -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 -
주간책톡(부산 도서관) 크롤링 -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 -
주간책톡(부산 도서관) 크롤링 -2 XPath, CSS_SELECTOR
value value2 value3 이런 형태의 웹이 있다고 하자. class 나, id 가 다 부모노드에 있어서 의 특정 값을 특정할수 class 나 id 로 특정 지을수 없을때. xpath 로 해결한다. 단순 CSS_SELECTOR 로 class 가 없는 td 태그 내의 font 태그의 요소를 찾으면 저 조건을 만족하는 모든 값이 다 크롤링 된다. author = driver.find_element(By.XPATH, '//tr/td/font[1]') 저자만 뽑히긴 했는데 사족이 달려있다. 원래 구조에서는 보지 못했던 것들. [2]로 출판만 잘 나오는것을 확인. -> //tr/td/font 로 시작하는 다른 형제노드가 있다고 판단. 확인하니 책 소개 문구인데. 리스트에 [저자,문구,저자2,문구2,.....
2023.04.24 -
주간책톡(부산 도서관) 크롤링 -1 CSS 선택자
※ 모든 크롤링은 개인공부용 으로 사용됩니다. 근처의 도서관이 잘 되어 있어서 자주 이용하고는 하는데, 이런 홍보 문자가 왔다. 책을 대출할 때는 좋지만, 가져다 놓으려면 여간 귀찮은게 아닌데 도서관에서 자체적으로 책을 선정해 요약본까지 준다. 게다가 오디오 북까지! 좋은 프로그램이라 생각한다. (부산도서관 주간책톡 신청 링크 https://busanlib.bookzip.co.kr/booktalk.asp) 주간책톡 자세한 안내 더보기 크롤링을 배워 세상의 모든것을 크롤링하고 싶은 기운이 넘치는 지금. 지금이 아니면 절대 하지 않을것 같다. 개략적으로 '내 카카오톡에 메세지가 오면 -> 링크 -> 웹페이지 크롤링 -> 개인 슬랙에 올리기' 대충 구성으로 할 생각이다. 카카오톡 과 - 파이썬의 연계는 차후에..
2023.04.24