今年度の目標
お久しぶりですlinusです。
今回は今年度の目標を立てていきたいと思います。
まず一つ目は
医療情報技師合格と診療情報管理士を合格です。
去年は医療情報技師を合格するのを目標にしてたんですが残念ながら情報だけの部分合格で終わったので悔しさをバネにし今年こそは情報技師をとって診療情報管理士を合格したいです。
2つ目は
またpythonで何か作るです。
去年も似たような目標を立てて適当に作ったんですが自力で作ったとは程遠いいような代物だったので今年こそは自力で何か作りたいです。(後もっといろいろ作りたい...
そして最後に3つ目は
ICD10の検索ツール的なのを作るです。
いま私は授業でicd10のコーディングを習っているんですがこれが普通にpcなどで検索できるといいなぁと思ってたので作りたいです。
一応データは
こういう風にあるのでそう難しくはないかも?....pythonでなんとかできるといいな...
というか今年の学園祭にはこれを展示したいところがある
以上で終わります。
前回の続き 時間指定をして、最新ものが来たらわかるようにした
どうもlinusです。
今回は前回やったやつの続きということで
例のプログラムを指定の時間で起動できるようにしました。
使った技術は時間取得のやつと他のプログラムを起動するものとメモ帳に書き込むというものです。
まず最初に時間指定ですが10分おきに起動してもらうためにこうしました。
# -*- coding: utf-8 -*- import os import datetime import locale #時間取得 now = datetime.datetime.now() dd=11 while True: now = datetime.datetime.now() pri = now.minute if not pri == dd: if pri == 0 or pri==10 or pri == 20 or pri == 30 or pri == 40 or pri == 50 : os.system('python rss.py') dd = pri
こういうプログラムを作った
このnow = datetime.datetime.now() で今の時間の情報がわかり
now.minuteとやれば今の分の情報を抜き取れるのでそっからはifで起動するもので
そっからは10分おきにやりたいのであのようなif文にあと気をつけなければいけないのは1分間に何回もこのループを回っているので同じminuteでは起動できないように
if not pri == dd:で10分のあとは10以外の奴でしか起動できないようにしました。os.systemのカッコの中には自分がターミナルでやりたいコマンドをできればできます。
そして肝心の最新のものはどうやるかというと
# coding: UTF-8 import urllib import urllib2 import requests from bs4 import BeautifulSoup f = open('url.txt','r') str = f.read() def postSlack( channelCode, message): headers = {'content-type': 'application/x-www-form-urlencoded'} respons = requests.post('https://slack.com/api/chat.postMessage', data = urllib.urlencode({ 'token': "トーンくんの番号", 'channel': channelCode.encode('utf_8') , 'text': message.encode('utf_8') , 'username': u"ブログ用".encode('utf_8') , 'icon_emoji': u":rage:", 'unfurl_links': 'true', 'unfurl_media': 'true', }),headers = headers) #print respons.text # RSSを取得する url = "https://www.pixivision.net/ja/rss" response = urllib2.urlopen(url) rss = response.read().decode("utf-8") # RSSからデータを抽出する soup = BeautifulSoup(rss, "lxml-xml" ) items = soup.find_all("item") item = items.pop(0) if not str==item.find("link").string: f = open('title.txt', 'w') f.write(item.find("link").string) f.close() print(item.find("title").string) print(item.find("link").string) postSlack("チャンネルid", u"違うものが来た"+item.find("title").string+item.find("link").string) else: print(item.find("title").string) print(item.find("link").string) postSlack("チャンネル", u"一緒だった"+item.find("title").string+item.find("link").string)
まず
f = open('title.txt','r') str = f.read()
で因数strの中にtitle.txtの文字情報が読み込まれます。ここでは適当に情報を入れておくといいと思います。 それでその下のif文の
if not str==item.find("link").string:
これで今取得して来たurlの先の情報とテキストのやつが一致していたら何も更新していないということで 違ったら更新されたということがわかります。
今日はこのくらいで終わりたいと思います。
参考にしたところ
http://www.ops.dti.ne.jp/ironpython.beginner/otherprocess.htmlwww.ops.dti.ne.jp
pixivisionをスクレイピングしてslackに垂れ流した話。
どうもlinusです。
今回はbeautifulSoupでpixivisionをスクレイピングしてみました。
またそのスクレインピングしたものをslackのチャンネルで通知してくれるようにしてみました。
まず最初に作ったプログラミをかくと
# coding: UTF-8 import urllib2 from bs4 import BeautifulSoup # アクセスするURL url = "https://www.pixivision.net/ja/" UERAGENT = 'Mozilla/5.0' headers={"User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0"} req = urllib2.Request(url, None,headers ) # URLにアクセスする htmlが帰ってくる html = urllib2.urlopen(req) # htmlをBeautifulSoupで扱う soup = BeautifulSoup(html, "html.parser") h2 = soup.find_all("h2") # 行き方のメモコピーから elm = soup.select("body > div.body-container > div > div.full-wide-container > article > div > div.aec__info-container > div.aec__title-container > h2 > a") row = elm.pop(0) print row.string print "https://www.pixivision.net/ja"+row.get("href")
殆ど下の方のをコピペしました。
けど上のurlの人と違う点は上の人はタグから探しているのですが私はselectというのを使ってcssの方から欲しいものを探す(?)ことにしました。 この
soup.select("body > div.body-container > div > div.full-wide-container > article > div > div.aec__info-container > div.aec__title-container > h2 > a")
っていうのが肝でこれで最新の記事がわかるようにしました。この()の中で探したいところの場所を指します。
やり方も簡単で 知りたいところを右クリックで検証押して コピーセレクトをするだけという楽さ しかしこれには重大な欠陥(?)があり urllibのせいなのわかりませんがpixivisionの英語方に行ってしまいました….
なので今度はpixivisionのrssの方でスクレイピングしようと 考え
# coding:utf-8 import urllib import urllib2 import requests from bs4 import BeautifulSoup def postSlack( channelCode, message): headers = {'content-type': 'application/x-www-form-urlencoded'} respons = requests.post('https://slack.com/api/chat.postMessage', data = urllib.urlencode({ 'token': "トークンの番号", 'channel': channelCode.encode('utf_8') , 'text': message.encode('utf_8') , 'username': u"トークンの名前".encode('utf_8') , 'icon_emoji': u"アイコン(顔文字ならいける)", 'unfurl_links': 'true', 'unfurl_media': 'true', }),headers = headers) print respons.text # RSSを取得する url = "https://www.pixivision.net/ja/rss" response = urllib2.urlopen(url) rss = response.read().decode("utf-8") # RSSからデータを抽出する soup = BeautifulSoup(rss, "lxml-xml" ) items = soup.find_all("item") item = items.pop(0) print(item.find("title").string) print(item.find("link").string) postSlack("slackのチャンネルのid", ""+item.find("title").string+item.find("link").string)
こうなりました。 またここではslackでのbotで自動的に送ってくれるようにしました。 これで苦労というか頑張ったところはpopというもの理解するところですかね?….
slackに送る方法はここを参考にさせてもらいました。
今回はここまでとしたいと思います。
今後の課題としては 1. pixivisinを直接からとっても日本語にしたい。
2.もっとpythonの知識を深めたい
3.これにrss昨日みたいに新しい記事が来たら通知してくれるようにしたい
と言ったところでしょうか?…..
あと、ここまで手助けしてくれた先輩から最近 下のような書物を貸していただいたのでそれに繋げられたらなぁーというのがあります。
あと他にこんなことができたら面白いんじゃね?みたいなのあったらコメント待ってます!
そのほか今回参考にしたサイト一覧
経過報告という名の言い訳
どうもlinusです。
この前の記事の後何をしたのか書きたいと思います。
またこの後の予定も、まず結果的にスクレイピングはしました。
下の画像のように
しかし、これ自体は下のurl記事の通りのことしかやっていないので
(しかも殆どこの時期を書いた人に教わりながらという)
これだけじゃああ......ってことなので
beautiful soupっていうのスクレイピングをやっているところなんですが.....
どうにも理解力が足りなくて使い方すらよくわかっていない状況です。
あとはうまくhtml文章を解読できないTT
私の欲しい情報のデーターはどこのクラスにいるのかとかその辺がよくわかっていない状況です
今やりたいこととしては、私の知らないうちにpixivに
こんな機能が追加されたのでこの漫画の新作が来たら何かしらで通知するものをやりたいなーって感じです。
近いうちに先輩あたりにbeautifull soupの使い方をおそわりたいなぁ...
この漫画の新作が来たらメールで連絡するようなのがやりたいなぁ....
今更ながら今年の目標やらやりたいことを
最近ろくにプログラムをしてないlinusです。
最近我がクラブでみんな
今年の個人の目標とクラブ全体で達成したい目標2つ書こうという話になって
〆切ギリギリに今になって筆をとった次第というか、キーボードを叩いた次第です。
私はの目標は大きく3つあります。
1つは8月に医療情報技師というがあり それに部分合格であれば合格できればいいかなというのがあり
2つ目は2ヶ月ぐらい前はpythonで簡単なプログラムを書いていたり今だと、PHPを勉強しているので何かちょっとした『何か』を作りたいなというのがあって具体的にいいうと
私はよくpixivというサイトでイラストの見まくっているので、それ関係で何かできるといいなーという気はしてます、うちのクラブではslackを使っているのでbotなんかを使って 何か通知したりとか 私のよく見てるpixivionなんかはrssも公開してるし
3つ目は今年の秋頃にそのpixivインターンにも行きたいと思ってるのでそれを実現できればいいかなと思っています。
エントリーフォーム見るとわかるんですが
自分のブログのurlを貼れるところがあるのでそこにこのブログのurlを貼って自分のpixiv愛とスキルを伝えようと思うので、これからなにかしら開発したいんですよね.....
部活全体としての目標としてはうちにも一応専用サーバーがあるらしいのでそれを使ってなんかみんなで遊べるといいなーとは思ってます....
追記
アルバイトの方だとそのpixivisionの編集者になれるだと?!
ここでアルバイトもして見たくなりました.....
今までバイトもしたことないのでいい機会かも?.....
CLAMPはええぞ(前回の内容)
ってことで前回の内容です
皆さんは CLAMP っていう漫画家さんをご存知でしょうか?
どんな漫画家さんかというと説明さてせいただきますと。
- かわいいキャラも描いていたりー
- 洒落オツな感じなのを描いてたりー
- 結構いろんな漫画をアニメ化させていたりー
する漫画家さんです! とにかく色々すごいんです!!
えっと リストのやつ1つだけちゃんと説明すると
かわいい漫画が見たいならカードキャプターさくら
という漫画をお勧めしたいと思います!
どんな漫画家というと、可愛いくて 元気になれる漫画です。
もっと説明すると、漫画の中でいろんな恋愛が見れるんですが、
普通のNLもあれば百合.BLや年の差もあったりするのに 全然ドロドロしてないんすよ
あと最後の最後の方で人が好きっていうのはどういうのか
考えさせてくれるような感じになったりして本当にオススメです!
というか、私の拙い語彙力では伝わらないと思うんで漫画を買って読みましょう!
今 なかよしで連載しているのでかなかよしを買いません? ⬇︎
︎
アドベントカレンダー HTMLで自分な好きなものを語る
ってことで今回は
上のアドベントカレンダー二回目、12/15日分を書きたいと思います。
内容としては前回みたいと同じようもので、HTMLを使って私の好きな漫画家さんを宣教するとっていうやつです。
先に今回htmlを利用するにあたって利用したサイトを先に載せておきます。
まず1つはタグを調べるのに使ったサイトが2つ
あとは色コードを調べるサイト
です。
ってことで宣教ブログの作成します。
まずは見出しにつかに使ったタグはです。hn .strong . big . font .color
上から紹介すると
hnは見出しの文章に使うもので
strongは強調です。
こんな感じに
bigは文字通りにbigにするやつで
こんな感じ
そんで bigとstrongを使うと
こんな感じ
あとfont colorは色をつけるタグっすね
これらを利用して、見出しをつけると....
こんな感じになります。
中身はこんな感じ↓
(色を変えるコードがなんか違っていますが、多分はてなブログの方で勝手に変えられちゃってる)
次にリストを使って紹介したいと思います。
今回使うのは数字が付いていないリストで書き方としては
<ul>
<li></li>
<li></li>
</ul>
って感じでliの間に言葉を入れる感じです。
これを利用して
こんな感じにします。
そんで表示させられるのがこんな感じ
あとは文章の途中を改行したいなーって思ったら<br>使ったりしました。
こんな感じに
これから さくらのあとにbr入れると
こういう風になります。
あとにフォントサイズとハイパーリンクを使ってのブログは終わらせようと思います。
こんな感じに
最終的にはこうなりました
どうやって表示されてるかは直接ブログ見てね⬇️
今回のまとめと感想
- アドベントカレンダーやってみた
- htmlで好きなものを宣教してみた
- はてなブログから直接やると勝手に変わる
正直マークダウンの方が楽のような気がしてならない.......
正直今なんでこんな面倒なことをやったんだろって自問自答なう....