ubuntu 16.04를 사용한다. 인터넷을 한창 사용하다 보면 연결이 끊긴다. 확증은 없지만 dhcp 문제인 듯. 아래와 같이 renew 하면 다시 된다!!
sudo dhclient -r
sudo dhclient
사진을 찍는데 사용하지 않는다. 저장만 하기에는 자원 낭비라 강제로 바탕화면에 뿌리기로 했다. 전에 KDE 사용할 때, 일정 디렉토리에 넣으면 알아서 바꿔줬는데, gnome-shell은 안된다.
variety를 사용하면 일정 폴더에서 자동으로 바꿔준다. 과거 wallch를 사용했는데 잘 안되었다.
서버에서 일정 시간으로 특정 디렉토리로 무작위로 복사한다. 약 200개.
데스크탑에서 아래와 같이 바탕화면 폴더로 저장한다.
#!/bin/bash
cd ~/바탕화면그림
#과거 파일 삭제..
find ~/바탕화면그림/ -type f -mtime +1 -exec mv {} ./toDelete \;
#echo "hello"
sftp ???@??? << EOT
cd ????
mget *
quit
EOT
chmod 755 *
#wallch --stop
rm /home/now0930/바탕화면그림/toDelete/*.jpg
rm /home/now0930/바탕화면그림/toDelete/*.JPG
#wallch --change /home/now0930/바탕화면그림/ --clock 30
#sleep 100
#wallch --start

python으로 보기싫은 좃선, 중앙 제안 키워드를 빼고 뉴스를 검색해 보자. 계획은 아래와 같다.
웹 크롤러는 인터넷에 많이 공개되어 있어 쉽게 만들었다. 코드 몇 줄로 원하는 기능을 구현했다. 어려웠던 점은 복사한 코드를 수정한 점이다. 인터넷 코드가 json 형식으로 파일을 저장했다. 이를 텍스트로 변경하는 과정에 문제가 있었다. csv의 writerow를 dictionary 인자로 넣으면 한 글자마다 컴마를 찍는다. dictionary를 [] 괄호로 감싸야 된다.
워드클라우드 역시 쉽다. 한글폰트를 명시하여 generate하면 바로 된다. 나머지 부족한 부분(plot을 파일로 저장 등)을 과거 코드에서 복사해서 해결했다.
구글뉴스가 – 기호로 검색어를 제외하는 기능을 제공한다. +키워드없이 모두 -로 넣으면 범위를 너무 크게 잡는다. 한국어, 최근 1주일 등 범위를 좁혔다. 검색어 제외와 보통 검색을 비교해 보면 좀 효과가 있는 듯 하다.
# -*- coding: utf-8 -*-
import requests
from bs4 import BeautifulSoup
import os
import csv
from wordcloud import WordCloud
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
req = requests.get('http://www.chosun.com/')
req.encoding=None
html = req.text
soup = BeautifulSoup(html, 'html.parser')
#조선일보는 dl형식으로 헤드라인을 작성한다.
my_contents = soup.find_all('dl', {'class':'news_item'}, 'dt')
data = {}
#임의의 키를 만들어서 저장.
index = 0
for content in my_contents:
data[index] = content.text
index = index + 1
###중앙일보
req = requests.get('https://joongang.joins.com/')
req.encoding=None
html = req.text
soup = BeautifulSoup(html, 'html.parser')
#중알일보는 li형식으로 헤드라인을 만든다.
my_contents = soup.find_all('li')
for content in my_contents:
data[index] = content.text
index = index + 1
print(data.values())
with open(os.path.join(BASE_DIR, 'result.csv'), 'w', encoding='utf8') as csv_file:
writer = csv.writer(csv_file)
for key in data.keys():
#writer = csv.DictWriter(csv_file, data.keys())
#writer = csv.writer(csv_file, delimiter=',')
#print(data[key])
writer.writerow([data[key]])
csv_file.close()
##word cloud
text = open(os.path.join(BASE_DIR, 'result.csv'), 'r', encoding='utf8').read()
#한글 폰트를 사용하기 위해, 명시
wordcloud = WordCloud(font_path='/usr/share/fonts/truetype/nanum/NanumBarunGothic.ttf', background_color='white').generate(text)
plt.figure()
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")
plt.show()
plt.savefig('./wordcloud.jpg',format='jpg', dpi=300)
고해상도 이미지를 원하면 아래와 같이 작업한다.
wordcloud = WordCloud(width=800, height=400).generate(text)
plt.figure( figsize=(20,10) )
plt.imshow(wordcloud)
참조 사이트
https://datamod.tistory.com/104
json으로 저장할 경우, utf8 방식으로 저장.
https://beomi.github.io/2017/01/20/HowToMakeWebCrawler/
웹 크롤러 기본.
http://pythonstudy.xyz/python/article/403-%ED%8C%8C%EC%9D%B4%EC%8D%AC-Web-Scraping
requests 한글 사용.
https://twpower.github.io/84-how-to-use-beautiful-soup
beautifulsoup 기본.
https://medium.com/@gis10kwo/converting-nested-json-data-to-csv-using-python-pandas-dc6eddc69175
json to csv, pandas
https://www.programiz.com/python-programming/working-csv-files
write to csv
writerow 할 때, 각 글자뒤에 comma 삽입될 때.
https://myjamong.tistory.com/48
wordcloud 사용에 한글 폰트 설정
고해상도 wordcloud
새로배운 Qlik으로 작년 수입/지출을 분석했다. 뱅크샐러드를 사용하면 1년간 수입/지출을 파일로 받을 수 있다. 인터넷에서 제공하고 있는 일별 주유가격과 내가 과거 사용한 주유비용을 보면 아래와 같다.


일단 데이터를 로딩하고, Qlik에서 항목을 수정했다.
[과거 기름값]:
LOAD
[번호],
[지역],
[상호],
[주소],
[기간],
MakeDate(left([기간],4),mid([기간],5,2),right([기간],2)) as [날짜],
[상표],
[경유]
FROM [lib://금융/과거_판매가격(주유소)20180308-20190308.csv]
(txt, codepage is 949, embedded labels, delimiter is ',', msq);
[필터된 경유]:
load [경유],
year([날짜])&'.'&month([날짜]) as [연월]
Resident [과거 기름값];
drop Table [과거 기름값];
기름가격 날자가 “.” 로 구분되어 굳이 이렇게 구분해야 Qlik에서 인식했다. 추가 블럭에 이리 로딩한 [과거 기름값]을 부르고, 날자 포멧으로 수정했다. 연관성을 없애기 위해 [과거 기름값]을 지웠다.
뱅크 샐러드에서 테이블을 부르면 카테고리가 대략 맞지만, qlik으로 원하는 부분을 수정하기 힘들다. 강력한 정규식을 지원하는 python pandas를 사용했다.
#_*_ coding: utf-8 _*_
import pandas as pd
import numpy
#Pandas로 업데이트
df = pd.read_csv("./test.csv")
#정규 표현식으로 다시 정리.
conditions = [
(df["내용"].str.contains("?????") & (df["대분류"] == "미분류")),
(df["내용"].str.contains("성과급지급") & (df["대분류"] == "미분류")),
(df["내용"].str.contains('\d{3}-\d{4}') & (df["대분류"] == "미분류")),
(df["내용"].str.contains('마이너스|??|월급통장|??') & (df["대분류"] == "미분류")),
(df["내용"].str.contains('????') & (df[">대분류"] == "미분류"))
]
choices = ["급여","급여","보험","대출","기타수입"]
df["급여"]=numpy.select(conditions, choices, default = df["대분류"])
df.to_csv("./20190313.csv",index=True)
pandas를 잘 사용하지 못해 시간을 많이 썼다. 그러나 qlik을 배워서 함보다 낫다.
I need someone to explain Steam as flatpak to me
by inlinux_gaming
Is it possible to move one of your flatpak installs (example – Steam client) off your root/home partition?
It could technically be possible as there are some env vars I believe but its not necessarily designed to run off a usb drive or such.
Is it possible to install Steam app on root/home partition, but all the games on a separate partition?
Yes you can grant Steam access to a directory:
flatpak override –filesystem=/mnt/foo/bar com.valvesoftware.Steam and then in Steam configure a games library in that directory.
flatpak override --filesystem=/mnt/foo/bar com.valvesoftware.Steam