📝 9월 6일 (월)
▪️ Tistory 커스터마이징
하이퍼링크 색상 설정
내 티스토리의 하이퍼링크는 링크답지가 않았기 때문에....
스킨 편집 > CSS > 맨 아래에 코드를 추가해주었다.
.entry-content a {
color: #0366d6 !important;
text-decoration: none; # 밑줄 추가하고 싶다면 none -> underline
}
.entry-content a:hover {
color: #0366d6 !important;
}
인라인 코드 테마 설정
인라인 코드 또한 정말 자기 주장이 없었다.
스킨 편집 > CSS > html, body { } 아래에 코드를 추가해주었다.
code {
background-color: #272822;
color: #f8f8f2;
padding: 3rem;
border-radius: 3px;
font-family: "Consolas", "Sans Mono", "Courier", "monospace";
font-size: 0.9rem;
font-weight: bold;
}
코드 블럭 테마 설정
Highlights.js 사용하기
Atom One Dark 테마를 적용해보았다!
스킨 편집 > HTML >태그 사이에 아래 코드를 추가해주면
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.2/styles/atom-one-dark.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.1.2/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
Ref.
https://wordbe.tistory.com/entry/인라인-코드블럭-코드-강조-코드-박스처리
https://minimin2.tistory.com/95
▪️ Python 웹 크롤링
중앙일보는 기사 목록에서 페이지의 가장 아래로 스크롤 한 뒤 더보기
를 눌러야 다음 기사들이 하단에 등장한다.
( 정말 이해할 수 없는 구시대적인 방식.. )
개발자 도구로 확인해 보면 더보기를 누르는 순간 아래와 같이 뿅! 하고 기사 list들이 추가가 되는데, 업데이트 된 리스트들을 드라이버로 받아올 때 문제가 발생하였다.
분명 더보기 엘레먼트를 click( ) 하였는데 받아온 기사 수는 그대로인 것이다.
어디선가 Implicitly Wait를 사용하라고 해서 10초동안 기다리라고 지시했는데, 드라이버는 기다리지 않고 계속 기사를 불러오는 코드를 바로 수행해버렸다.
💡해결
Implicitly Wait가 아닌 time.sleep을 써야했던 것이다!
Implicitly Wait vs time.sleep
Implicitly Wait
from selenium import webdriver
driver = webdriver.Chrome('chromedriver.exe')
driver.implicitly_wait(10)
time.sleep
from time import sleep
sleep(1) #1초간 기다림
- 저 Implicitly Wait는 쉽게 설명하자면 페이지 이동등의 명령어를 줬을 때 다음 웹페이지가 넘어올때까지 기다리라는 뜻이다.
- 주의 할 것은 페이지가 넘어오기까지 최대 10초까지 기다리겠다는 의미이지 요청하고나서 무조건 10초를 기다리겠다는 것이 아니다.
- 무조건 10초를 기다리려면 time.sleep 을 쓰면 된다!
예를 들어서 임플리시틀리 웨이트를 10초로 설정하고 특정 사이트에 접속했는데 웹페이지가 1초만에 넘어왔다면 1초후에 다음 명령어를 실행하게 된다. 다시 말하자면 페이지가 다 넘어왔으면 10초가 지나지 않아도 다음 명령어를 실행하는 것이고 안넘어온다면 최대 10초까지만 기다려보고 10초가 지나도록 안넘어오면 그냥 다음 명령어를 실행하겠다는 의미이다.
Ref.
https://pythondocs.net/selenium/셀레니움-wait-개념-이해하기-implicitly-wait-vs-explicitly-wait/
📝 9월 7일 (화)
▪️ Python 웹 크롤링
Selenium에서 자식 창, 부모 창 이동 및 변환
Ref.
https://noodle-dev.tistory.com/43
▪️ GIT .gitignore 적용안되는 오류
- .gitignore에 무시할 파일을 추가했으나 적용되지 않았다.
- 이미 기존에 명시되어있던 파일은 무시가 잘 되고있는데, 추가한 파일만 무시되지 않은 경우
💡 해결
- 일단 현재 상태에서 무시하고자 하는 파일을 제외하고 commit을 해준다. (안 해주면 다 날아가므로 주의하자)
- 루트 폴더(최상위 폴더)에 간 후
git rm -r --cached 파일명1 파일명2 ...
명령어 수행
⇒ 이제부터는 선택한 파일의 git index가 다 초기화되었으니 .gitignore가 다시 적용
3. 평상시대로 git add 해주고 commit 하면서 git status를 쳐보면 추적됐던 파일들이 gitignore에 따라 무시된 것을 확인
Ref.
https://coding-groot.tistory.com/59
▪️ 하둡(Hadoop)의 HDFS 기본개념
- 하둡은 여러 대의 서버에 데이터를 저장하고, 저장된 각 서버에서 동시에 데이터를 처리
- 하둡은 RDBMS와 경쟁하는 것이 아닌 협력하는 것
- 쇼핑몰에서 회원가입이나 결제 진행과 같은
무결성
을 보장해야하는 것 - ⇒ RDBMS가 적합
- 회원이 관심있는 물품 ,이동경로, 머무르는 시간 등 배치성으로 저장되는 데이터
- ⇒ 하둡이 적합
- 쇼핑몰에서 회원가입이나 결제 진행과 같은
- HDFS는
Hadoop Distributed File System
의 약자 - 네임노드(마스터)와 데이터노드(슬레이브)로 구현되어 있음
클라이언트가 HDFS에 데이터를 저장하려면?
- 반드시 네임노드에 먼저 접속
- 기존 파일의 저장여부와 권한 확인 절차를 거쳐 저장이 승인됨
- 데이터노드는 클라이언트가 HDFS에 저장하는 파일을 로컬 디스크에 유지한다.
📝 9월 9일 (목)
▪️ Spark 환경 설정
spark.createDataFrame 에서 ValueError: Cell is empty 에러 해결
Spark3 관련하여
- PySpark를 위한 Python은 3.8+ 이상만 사용할 수 있다고 한다.
- 따라서 기존 Python 3.6버전을 3.8로 교체한 후 해결하였다.
Ref.
https://www.mail-archive.com/issues@spark.apache.org/msg294260.html
📝 9월 10일 (금)
▪️ Boj 알고리즘 단계별 - 문자열
📝 9월 11일 (토)
▪️뉴스 데이터 전처리
Window에서 Mecab 형태소 분석기 설치
일본 NTT에서 개발한 Mecab은 일본어 형태소 분석기로, 개발자가 미역줄기를 좋아해서 이름을 mecab으로 지었다고 한다(?)
은전한닢 프로젝트는 Mecab을 한국어에 사용할 수 있도록 개선 & 발전시킨 라이브러리인데, mecab-ko는 윈도우 환경을 지원하지 않는다.
하지만! Konlpy의 하위프로젝트인 koshort 프로젝트의 pyeunjeon
을 통해 은전한닢 프로젝트의 mecab을 윈도우에서도 쉽게 설치가 가능하다.
설치법
$ pip install eunjeon
사용법
>>> from eunjeon import Mecab # KoNLPy style mecab wrapper
>>> tagger = Mecab()
>>> tagger.nouns("고양이가 냐 하고 울면 나는 녜 하고 울어야지")
['고양이', '나', '녜']
>>> poem = "흘러내린 머리카락이 흐린 호박빛 아래 빛난다."
>>> tagger.morphs(poem) # 형태소 단위로 나누기
['흘러내린', '머리카락', '이', '흐린', '호박', '빛', '아래', '빛난다', '.']
>>> tagger.pos("다람쥐 헌 쳇바퀴에 타고 파")
[('다람쥐', 'NNG'), ('헌', 'XSV+ETM'), ('쳇바퀴', 'NNG'), ('에', 'JKB'), ('타', 'VV'), ('고', 'EC'), ('파', 'VX+EC')]
Ref.
GitHub - koshort/pyeunjeon: (deprecated) 은전한닢 프로젝트와 mecab 기반의 한국어 형태소 분석기의 독립형 python 인터페이스
📝 9월 12일 (일)
▪️ Boj 알고리즘 단계별 - 기본수학 1
'WIL (Weekly I Learned)' 카테고리의 다른 글
[TIL] 백준 13300번: 방 배정 (Python) - 시간 복잡도 O(N)으로 풀기 (0) | 2023.01.02 |
---|---|
[WIL] 2021년 9월 넷째 주/ 10월 첫째 주 WIL (0) | 2021.10.15 |
[WIL] 2021년 9월 셋째 주 WIL (0) | 2021.09.20 |
[WIL] 2021년 9월 첫째 주 WIL (0) | 2021.09.06 |