linusの技術ブログのような何か

学生です プログラム(一応は)勉強中です  

今年度の目標

お久しぶりです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の先の情報とテキストのやつが一致していたら何も更新していないということで 違ったら更新されたということがわかります。

今日はこのくらいで終わりたいと思います。

参考にしたところ

qiita.com

http://www.ops.dti.ne.jp/ironpython.beginner/otherprocess.htmlwww.ops.dti.ne.jp

www.yukun.info

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")

殆ど下の方のをコピペしました。

qiita.com

けど上の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というもの理解するところですかね?….

f:id:untilis:20170923003244p:plain

f:id:untilis:20170923003257p:plain

slackに送る方法はここを参考にさせてもらいました。

godan09.hatenablog.com

今回はここまでとしたいと思います。

今後の課題としては  1. pixivisinを直接からとっても日本語にしたい。

 2.もっとpythonの知識を深めたい

 3.これにrss昨日みたいに新しい記事が来たら通知してくれるようにしたい

と言ったところでしょうか?…..

あと、ここまで手助けしてくれた先輩から最近 下のような書物を貸していただいたのでそれに繋げられたらなぁーというのがあります。

Amazon CAPTCHA

あと他にこんなことができたら面白いんじゃね?みたいなのあったらコメント待ってます!

そのほか今回参考にしたサイト一覧

BeautifulSoupを使ってHTMLファイルからある文字列を含むリンクを抽出する - Qiita

PythonとBeautiful Soupでスクレイピング - Qiita

経過報告という名の言い訳

どうもlinusです。

この前の記事の後何をしたのか書きたいと思います。

またこの後の予定も、まず結果的にスクレイピングはしました。

 

下の画像のように

f:id:untilis:20170625140441p:plain

 

しかし、これ自体は下のurl記事の通りのことしかやっていないので

(しかも殆どこの時期を書いた人に教わりながらという)

godan09.hatenablog.com

これだけじゃああ......ってことなので

 

beautiful soupっていうのスクレイピングをやっているところなんですが.....

どうにも理解力が足りなくて使い方すらよくわかっていない状況です。

あとはうまくhtml文章を解読できないTT 

私の欲しい情報のデーターはどこのクラスにいるのかとかその辺がよくわかっていない状況です

 

今やりたいこととしては、私の知らないうちにpixivに

www.pixiv.net

 

こんな機能が追加されたのでこの漫画の新作が来たら何かしらで通知するものをやりたいなーって感じです。

近いうちに先輩あたりにbeautifull soupの使い方をおそわりたいなぁ...

 

www.pixiv.net

 

この漫画の新作が来たらメールで連絡するようなのがやりたいなぁ....

 

今更ながら今年の目標やらやりたいことを

どうもお久しぶりですlinusです。

 

最近ろくにプログラムをしてないlinusです。

 

最近我がクラブでみんな

今年の個人の目標とクラブ全体で達成したい目標2つ書こうという話になって

〆切ギリギリに今になって筆をとった次第というか、キーボードを叩いた次第です。

 

私はの目標は大きく3つあります。

 

1つは8月に医療情報技師というがあり それに部分合格であれば合格できればいいかなというのがあり

 

2つ目は2ヶ月ぐらい前はpythonで簡単なプログラムを書いていたり今だと、PHPを勉強しているので何かちょっとした『何か』を作りたいなというのがあって具体的にいいうと

 

 私はよくpixivというサイトでイラストの見まくっているので、それ関係で何かできるといいなーという気はしてます、うちのクラブではslackを使っているのでbotなんかを使って 何か通知したりとか 私のよく見てるpixivionなんかはrssも公開してるし

 

3つ目は今年の秋頃にそのpixivインターンにも行きたいと思ってるのでそれを実現できればいいかなと思っています。

 

 

エントリーフォーム見るとわかるんですが

recruit.pixiv.net

自分のブログのurlを貼れるところがあるのでそこにこのブログのurlを貼って自分のpixiv愛とスキルを伝えようと思うので、これからなにかしら開発したいんですよね.....

 

 

 

部活全体としての目標としてはうちにも一応専用サーバーがあるらしいのでそれを使ってなんかみんなで遊べるといいなーとは思ってます.... 

 

 

追記

アルバイトの方だとそのpixivisionの編集者になれるだと?! 

f:id:untilis:20170428182713p:plain

 

ここでアルバイトもして見たくなりました.....

今までバイトもしたことないのでいい機会かも?.....

 

CLAMPはええぞ(前回の内容)

ってことで前回の内容です

 

 

untilis.hateblo.jp

 

 

 

皆さんは CLAMP っていう漫画家さんをご存知でしょうか?

どんな漫画家さんかというと説明さてせいただきますと。

 

  • かわいいキャラも描いていたりー
  • 洒落オツな感じなのを描いてたりー
  • 結構いろんな漫画をアニメ化させていたりー

する漫画家さんです! とにかく色々すごいんです!!

えっと リストのやつ1つだけちゃんと説明すると

かわいい漫画が見たいならカードキャプターさくら

 という漫画をお勧めしたいと思います!
どんな漫画家というと、可愛いくて 元気になれる漫画です。

 もっと説明すると、漫画の中でいろんな恋愛が見れるんですが、
普通のNLもあれば百合.BLや年の差もあったりするのに 全然ドロドロしてないんすよ
 あと最後の最後の方で人が好きっていうのはどういうのか
考えさせてくれるような感じになったりして本当にオススメです!

というか、私の拙い語彙力では伝わらないと思うんで漫画を買って読みましょう!

今 なかよしで連載しているのでかなかよしを買いません? ⬇︎

amazonの仲良しが売っているurl

CLAMP はええぞ!

アドベントカレンダー  HTMLで自分な好きなものを語る

 

 

ってことで今回は

 

www.adventar.org

上のアドベントカレンダー二回目、12/15日分を書きたいと思います。

 

 

内容としては前回みたいと同じようもので、HTMLを使って私の好きな漫画家さんを宣教するとっていうやつです。 

 

 

先に今回htmlを利用するにあたって利用したサイトを先に載せておきます。

 

 

まず1つはタグを調べるのに使ったサイトが2つ

hmaster.net

 

HTMLタグ一覧

 

あとは色コードを調べるサイト

www.netyasun.com

 

です。

 

 

ってことで宣教ブログの作成します。  

まずは見出しにつかに使ったタグはです。hn .strong . big . font .color

上から紹介すると

hnは見出しの文章に使うもので

strongは強調です。

f:id:untilis:20161214105446p:plain

f:id:untilis:20161214105453p:plain

こんな感じに

 

bigは文字通りにbigにするやつで

こんな感じ

 

f:id:untilis:20161214105823p:plain

f:id:untilis:20161214105836p:plain

 

そんで bigとstrongを使うと

f:id:untilis:20161214105934p:plain

f:id:untilis:20161214105945p:plain

こんな感じ

 

あとfont colorは色をつけるタグっすね

 

これらを利用して、見出しをつけると....

 

 

こんな感じになります。

f:id:untilis:20161214110208p:plain

中身はこんな感じ↓

f:id:untilis:20161214110158p:plain

(色を変えるコードがなんか違っていますが、多分はてなブログの方で勝手に変えられちゃってる)

 

次にリストを使って紹介したいと思います。

今回使うのは数字が付いていないリストで書き方としては

 

<ul>

<li></li>

<li></li>

</ul>

って感じでliの間に言葉を入れる感じです。

これを利用して

 

こんな感じにします。

f:id:untilis:20161214112152p:plain

 

そんで表示させられるのがこんな感じ

f:id:untilis:20161214112239p:plain

 

あとは文章の途中を改行したいなーって思ったら<br>使ったりしました。

 

こんな感じに

f:id:untilis:20161214113901p:plain

f:id:untilis:20161214113913p:plain

これから さくらのあとにbr入れると

 

 

f:id:untilis:20161214113916p:plain

f:id:untilis:20161214113919p:plain

 

 こういう風になります。

あとにフォントサイズとハイパーリンクを使ってのブログは終わらせようと思います。

 

f:id:untilis:20161215090325p:plain

 

f:id:untilis:20161215090333p:plain

 

こんな感じに

最終的にはこうなりました

 

 

f:id:untilis:20161215090734p:plain

 

どうやって表示されてるかは直接ブログ見てね⬇️

 

 

untilis.hateblo.jp

 

 今回のまとめと感想

 

 

 正直マークダウンの方が楽のような気がしてならない.......

正直今なんでこんな面倒なことをやったんだろって自問自答なう....