There is no such driver by url 오랜만에 셀레니움을 써야해서 크롬드라이버 자동으로 받게 했는데 안되네요. 크롬 드라이버 매니저가 되지 않습니다. 'There is no such driver by url' 이라고 합니다. 즉, 이런 다운로드 링크 없다는 얘기입니다.(정말...구글...이럴거야?) 왜그런가 하니 사이트를 바꿔놨습니다. 그걸 chromemaneger는 인지하지 못한 것 같습니다. 그래서 115 버전부터는 다른 사이트에서 운영하니 그 사이트를 가서 받아주어야 합니다. (짜증...) 그럼 최신버전은 더이상 최신버전이 아니니 더이상 chromemaneger는 쓸 수 없게 되는 것... 또르르륵.... 여태 chromemaneger로 해놨던거 다 바꾸게 생겼습니다. 그래서 어느..
newspaper 모듈 소개 뉴스 스크래핑 하는 방법은 많습니다. 일반적으로 셀레니움이나 requests 써도 되는데 편리함을 추구하는 사람으로써 newspaper를 써봤습니다. (좀... 늦었나?) newspaper는 사용자가 지정한 url에서 text를 추출해주는 모듈입니다. 그러니깐 뉴스말고 웹 전체를 다 텍스트화 한다고 생각하시면 됩니다. 이미지랑 동영상도 가능합니다. 이미지는 다 되는데 동영상은 일부 안 되는 경우도 있습니다. 자세한 내용은 newspaper 공식 가이드에서 확인할 수 있습니다. Newspaper 설치 지금도 python2를 쓰는 분이 있나봅니다. newspaper 설치를 그냥 하면 python2 버전으로 설치되서 python3에서는 안됩니다. # python2 pip insta..
이번 블로그 글에서는 파이썬에서 RSS를 가져오는 방법을 다루려고 합니다. RSS란? RSS(Rich Site Summary 또는 Really Simple Syndication)는 웹 사이트에서 발행되는 최신 정보를 구독자에게 쉽게 제공하기 위한 XML 기반의 웹 피드입니다. RSS를 이용하면 웹 사이트의 새로운 글, 뉴스, 팟캐스트 등을 매우 쉽게 받아볼 수 있습니다. 파이썬에서 파싱하는 방법 파이썬에서 RSS를 가져오는 방법은 크게 두 가지로 나눌 수 있습니다. 첫 번째는 파이썬 라이브러리를 사용하는 방법이고, 두 번째는 HTTP 요청을 통해 직접 RSS 데이터를 가져오는 방법입니다. 파이썬 라이브러리 사용하기 파이썬에서는 feedparser 라이브러리를 사용하여 RSS를 파싱할 수 있습니다. 이 라..
셀레니움으로 크롬 드라이브를 켜보면 아래와 같이 한글이 무지막지하게 깨지는 걸 볼 수 있습니다.(쿠팡에 아무거나 들어가봤습니다) 원인은 리눅스에 한글팩이 없는 것! 한글팩을 설치해주어야 합니다. 물론 한글 설정도 해야하고요. 우분투 리눅스 한글 언어팩 설치 한글 언어팩 설치 한글 언어팩을 설치합니다. sudo apt-get install language-pack-ko 만약 unable to locate package 오류가 뜬다면 다음 포스팅을 참고해주시기 바랍니다. [우분투] unable to locate package 해결방법 locale-gen을 통해 Locale 언어 설정 sudo locale-gen ko_KR.UTF-8 한글로 설정 dpkg-reconfigure 에서 ko_KR.UTF-8 UTF..
참고사항 115버전부터는 운영하는 사이트가 바뀌어서 ChromeDriverManager 가 되지 않습니다. 아래 포스팅을 참고하시기 바랍니다. [Python/웹크롤링] - 크롬드라이버 자동 오류 해결(115버전부터 사이트가 바꼈어요) 파이썬에서 크롬 브라우저 컨트롤을 하기 원한다면 즉, chrome-driver를 사용하려면 chrome과 버전이 맞게 chrome-driver를 설치해야 합니다. 그런데 chrome 업데이트가 이루어지면 버전호환이 안되서 다시 깔아야 하는 불편함이 있습니다. 매번 폴더나 작업환경이 바뀌면 일일히 chrome-driver를 설치해야 하고 설치할 때마다 chrome 버전을 확인해야 합니다. 그래서 chrome-driver를 따로 설치하지 않고 사용하는 방법을 알려드립니다. 아래..
파이썬에서 공공데이터나 외부에서 크롤링을 json 형태로 가져오게 되면 dict형식인데 string으로 가져올 때가 있습니다. string 자체로는 데이터 처리를 하기가 굉장히 난감합니다. 더군다나 dict형식으로 되어있어서 더더욱 어렵습니다. string을 완벽한 dict형식으로 바꾸어야 판다스에서 데이터 전처리를 할 수 있게 됩니다. 사실 json으로 바꾸는 거긴 합니다 json이라 하면 잘 모를수도 있으니깐 일단 dict형식이라고 하겠습니다 json 모듈을 이용해 dict으로 변환합니다. json 활용 dict_string = '{"a":"b","a2":"c"}' type(dict_string) to_json = json.loads(dict_string) type(to_json) 이런식으로 바꾸고 ..
FinanceDataReader라는 라이브러리가 있어서 소개겸 포스팅하려 합니다. 이 라이브러리를 쓰면 국내 주식, 미국 주식, 지수, 환율, 주요 암호화폐 가격 데이터를 가져올 수 있습니다. 제가 이 포스팅을 쓰는 이유는 자꾸 잊어버려서 코드를 저장하고자 쓰는 내용이라 원하는 내용이 없을 수도 있습니다. 그리고 라이브러리에서 코드를 바꿔버리거나 서비스를 중지하면 되지 않을 수 있으니 안 되시면 FinancedataReader 가이드 사이트나 Github에서 확인하시기 바랍니다. Install 다음 코드를 파이썬 prompt나 파워쉘에서 입력해 설치를 합니다. 쥬피터에서는 맨 앞에 느낌표(!)를 붙입니다. pip install finance-datareader 전체 종목 코드 가져오기 국내와 미국 주식 ..
네이버 증권에서 재무제표를 가져오는 방법입니다. 삼성전자를 예로 하겠습니다.네이버증권에서 삼성전자 검색해서 들어가면 사이트 이름이 다음과 같이 나옵니다. 여기서 '005930' 이 종목코드입니다.이 코드에 따라서 웹페이지가 바뀌는 걸 알 수 있습니다.이를 이용해 해당 페이지에서 기업실적분석을 가져오려고 합니다. 크롤링다음과 같이 입력해 크롤링을 합니다.단순하게 URL에서 html 가져와서 표는 판다스로 가져올 수 있으니 판다스로 넘겨서 표로 나오게 합니다. import pandas as pdimport requestscode = '005930'URL = f"https://finance.naver.com/item/main.nhn?code={code}"r = requests.get(URL)df = pd..
https://news.v.daum.net/v/20200506153410306 외신 "삼성 갤럭시Z플립 3월 23만대 판매..전달보다 56.1% 증가" (서울=연합뉴스) 이한승 기자 = 삼성전자의 폴더블폰 갤럭시 Z플립의 3월 판매량이 전달보다 50% 이상 증가한 것으로 나타났다. 샘모바일 등 미국 IT전문매체는 5일(현지시각) 삼성 갤럭시 Z플립이 news.v.daum.net 다음 뉴스를 가지고 크롤링을 해보겠습니다. 뉴스 제목 크롤링 뉴스 제목을 크롤링하는 방식은 다음과 같습니다. requests 모듈로 기사의 링크를 가져옵니다. BeautifulSoup으로 Html을 파싱해옵니다. 뉴스 제목에 해당하는 tag를 파싱한 곳에서 찾습니다. 찾은 tag에서 get_text()를 이용해 text를 가져옵니..
BeautifulSoup의 간단한 메소드 소개를 할까합니다. 웹크롤링을 하게 되면 개발자모드에서 데이터를 가져옵니다. 개발자모드를 보면 알겠지만 데이터는 보통 html로 되어있습니다. 그걸 다 가져올수는 없고 제가 필요한 부분만 가져와야 합니다. 더구나 데이터가 많거나 웹사이트가 무거운 경우는 일일히 찾아서 복사해서 붙여넣을수도 없습니다. 그런 불편함을 BeautifulSoup으로 해결할 수 있습니다. BeautifulSoup으로 html에서 필요한 부분을 가져올 수 있습니다. html = ''' 그림책 Tap 그림책이란? 그림책은 그림으로 설명하는 책을 말합니다 ''' html 하나를 만들고 한 번 다뤄보겠습니다. Find 함수 from bs4 import BeautifulSoup soup = Beau..
크롤링을 하는데 꼭 필요한 모듈이 requests 모듈입니다. 웹사이트를 내 공간으로 불러들여야 코딩작업을 할 수 있는데 requests로 불러올 수 있습니다. 웹크롤링의 시작이고 반드시 해야 하는 작업중에 하나입니다. HTTP 전달 방식 http는 크게 get 방식과 post 방식으로 나뉩니다. 간단하게 구분을 하자면 get 방식은 링크를 보면 www.naver.com/~~~ 로 뒤에 무언가가 붙어서 주소로써 나오는 것들을 말하고 post 방식은 주소로 보이지 않고 창에 나오는 것들을 말합니다. 아이디나 비밀번호도 주소에 나온다면 큰 문제기 때문에 방식을 바꿔서 전송을 합니다. Get 방식 크롤링 get 방식은 url만 알아내면 금방 가져올 수 있습니다. 아무 기사를 크롤링 해봅시다. https://n..
정규표현식에 대해 설명하겠습니다. 정규표현식은 특정한 패턴과 일치하는 문자열을 검색하거나 치환하거나 제거하는 기능을 가지고 있습니다. 이메일 형식 판별이나 전화번호 판별, 자신이 원하는 문자열 판별 등을 할 수 있습니다. 그래서 정규표현식을 이용해 스팸메일 걸러내거나 문서를 걸러내는 업무 자동화등을 할 수 있습니다. 참고로 re 모듈을 import 하고 시작할 수 있습니다. 이번 포스팅에서는 정규표현식의 기초적인 문법만 설명하겠습니다. 기본 패턴 정규식을 사용하려면 메타 문자를 알고 있어야 패턴을 생성해서 원하는 검색을 할 수 있습니다. 메타 문자 설명 * 0회 이상 반복 허용 + 1회 이상 반복 허용 ? 0회나 1회 반복 허용 {m} m회 반복 허용 {m,n} m회부터 n회까지 반복 허용 . 줄바꿈 문..
웹크롤링? 파이썬을 통해서 데이터 처리를 하려고 하지만 데이터가 없으면 무용지물입니다. 데이터를 받아오는 방법은 많지만 그 중에서도 웹사이트내에 있는 데이터나 정보를 가져오는 방법을 소개하려고 합니다. 웹크롤링이라고 하는데요. 크롤링을 스파이더링이라고 부르기도 하는데 웹페이지에서 정보를 추출하기 위한 작업을 의미합니다. 웹사이트의 내용을 수집하므로 웹크롤링으로 불리기도 합니다. 크롤링으로 데이터를 수집하는 프로그램을 크롤러(crawler)라고 합니다. 스파이더(spider) 또는 봇(bot)이라고도 부릅니다. 알면 좋은 지식 크롤링을 하려면 html의 기본문법정도는 알면 좋습니다. 어떤 태그에서 어떤 역할을 하는지 안다면 빠르게 검색을 할 수 있어서 여러모로 도움이 됩니다. 기초지식은 제가 html에서 ..