エクスポートしたはてなブックマークのフィードをCSVファイルに変換する
はじめに
はてなブックマークにおいて、特定の1年にブックマークした自分のブックマークを確認したかったのですが、マイページからはわかりにくかったため、Pythonの練習がてらブックマーク一覧をCSV形式に変換しました。
はてなブックマークの [マイページ > 設定 > データ管理] からブックマークのデータがエクスポートできます。出力可能な形式は
- ブックマーク形式
- Atomフィード形式
- RSS1.0形式
の3パターンです。中身を見てみたところ、Atomフィード形式が扱いやすそうだったので、そちらを利用することにしました。
入力データ
はてなブックマークからエクスポートできるAtomフィード形式のファイルは以下の形式です。どうやらxml形式として扱えそうです。(値は適宜置き換えています)
<?xml version="1.0" encoding="UTF-8"?> <feed xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="ja"> <title>(はてなID)のブックマーク</title> <link type="text/html" rel="alternate" href="https://b.hatena.ne.jp/(はてなID)/bookmark"/> <link type="application/x.atom+xml" rel="service.post" title="(はてなID)のブックマーク" href="https://b.hatena.ne.jp/atom/post"/> <entry> <id>tag:hatena.ne.jp,2005:bookmark-(はてなID)-(数字列)</id> <title>(ページタイトル)</title> <link type="text/html" rel="related" href="(ページURL)"/> <link type="text/html" rel="alternate" href="(ブックマークURL)"/> <link type="application/x.atom+xml" rel="service.edit" title="(ページタイトル)" href="https://b.hatena.ne.jp/atom/edit/(数字列)"/> <summary>(コメント)</summary> <issued>(日時)</issued> <author> <name>(はてなID)</name> </author> <dc:subject>(タグ1)</dc:subject> <dc:subject>(タグ2)</dc:subject> </entry> <entry> ... </entry> ... </feed>
方針
日付でブックマークをフィルタして確認することが目標です。出力結果には以下のものが含まれることにしました。
- 通し番号
- ブックマークしたページタイトル
- ページのURL
- 自分のコメント
- ブックマークした日時
- タグ
作成したコード
import bs4 import csv from datetime import datetime soup = bs4.BeautifulSoup(open('(bookmarks.atom)'), 'xml') entry_list = [] header = ['index', 'title', 'URL', 'comment', 'time', 'tags'] entry_list.append(header) entries = soup.find_all('entry') for idx, entry in enumerate(entries): data = [] index = str(idx) title = entry.find('title').text link = entry.find('link').get('href') summary = entry.find('summary').text issued = entry.find('issued').text time = datetime.strptime(issued, '%Y-%m-%dT%H:%M:%S%z') time = "{0:%Y-%m-%d %H:%M:%S}".format(time) tags = entry.find_all('dc:subject') tag_list = [] for tag in tags: tag_list.append(tag.text) tag_data = ','.join(tag_list) data.append(index) data.append(title) data.append(link) data.append(summary) data.append(time) data.append(tag_data) entry_list.append(data) with open('data.csv', 'w', encoding="utf_8_sig") as file: writer = csv.writer(file, lineterminator='\n') writer.writerows(entry_list)
出力結果
以下の出力結果が得られます。
index,title,URL,comment,time,tags 0,(ページタイトル),(ページURL),(コメント),(日時),"(タグ1),(タグ2)" 1,... ...
自分が欲しい情報のみを出力しているので、コードを変更すれば他の値も出力可能です。
感想
これまでコードを書いてこなかったので、意図する動きをするプログラムが書けて良かったです。 本当はもう少し解説?してqiitaに投稿しようと思っていましたが、力尽きたのでひとまずここで供養することにします。
『外資系コンサルが教える 読書を仕事につなげる技術』 感想
読みました
読むきっかけ
- Kindle Unlimitedに入ってしまい(?)、良さそうだと思ったため
- 本を読んでいるが、活用できていないのためそれの打開になればと
読む前の思い
- 本を活用するやり方を知りたい
印象に残った内容5点
ビジネス書の名著をしっかり読む、いわばビジネスパーソンとしての基礎体力をつけるための読書と、リベラルアーツ=教養に関する本を読む、いわばビジネスパーソンとしての個性を形成するための読書の2種類
リベラルアーツを収めるための読むべきカテゴリー
- 哲学(近・現代思想)
- 歴史(世界史・日本史)
- 心理学(認知・社会・教育)
- 医学・生理学・脳科学
- 工学(含コンピュータサイエンス)
- 生物学
- 文化人類学
リベラルアーツの読書を仕事の成果につなげるために、やらなければならないこと。それは「抽象化」(中略)抽象化とは、細かい要素を捨ててしまってミソを抜き出すこと、「要するに○○だ」とまとめてしまうこと。 モノゴトがどのように動いているか、その仕組み=基本的なメカニズムを抜き出すことです。経済学の世界ではこれを「モデル化する」と言います。
優先順位づけによる選抜です。アンダーラインの箇所がどんなに多かったとしても、イケスに放り込むのは基本的に5カ所、どんなに多くても9つまで。
リベラルアーツに関連する読書において重要なのは、単に転記するだけではなく、必ずビジネスや実生活における「示唆」を書き出すということです。(中略)
- 面白かった箇所
- ビジネスや実生活に対する示唆
- 具体的なアクションの仮説
感想
本の読み方として2種類に分類し、何度も読むべき基礎体力をつける本と読書記録をつけて記録しておく教養の本、の考え方は新しくて参考になった。特に教養本の読み方は参考になった。
ちなみに基礎本はおすすめ曼荼羅があったので、そちら参考にしてみるのもいいかなと。ただ、経営やリーダーシップなど、いわゆるビジネスパーソン向け、と感じたので、エンジニア観点では全てが参考になるかというとウーン、という感じ。
全体をざっと読んで重要な部分を抜き出す、ことは抽象化の観点から見ても非常に重要だと思った。読書は投資活動であり、アイドルタイムをへらす工夫、つまらない本を読まないようにする工夫、選ばないようにする工夫も頷けるものだった。
またビジネスの進め方としても全体を掴んで、抽象化するやり方、は必要だと感じた。
積ん読が増えてしまって、アウトプットや読み方に迷っていたが、教養本のやり方は実践していきたい。ガツガツ線引いて選んでいく行為はなかなかあってそうだと感じた。(ただ、選ぶのはけっこう大変)
PyQやってみた
随分書いてなかったですが、今年はアウトプット頑張ろうと思うので、何でも書いていこうと思います。さて、昨年度末からつい最近までPythonの学習サービスPyQやってたので、その感想です。
PyQの詳細は省略させていただきます。以下の記事が参考になるかなと。
【もう挫折しない】Python学習サイトPyQが入門者におすすめな理由 | misclog(ミスクログ)
では、どうぞ。
総評
- 手を動かして学習したいPython初心者にはかなりおすすめのサービス
- やりたいときにやりたい場所でできるため、学習へのハードルが下がる
- 値段から考えてもコンテンツは豊富であるが、月課金なので、短期集中をおすすめ
自分のスペック
- 20代後半社会人
- プログラミング学習経験
- 総じてプログラミング初心者です
- 業務でDjangoを使うWebアプリ開発をすることとなったため、学習を計画
- プログラマーになるというモチベーションではなく、書いてあるコードが読めればいい、ぐらいのモチベーションでした
- 何しようか、と調べて以下のページを参考にPyQをすることに決定
やった時間、内容
- 契約期間:3ヶ月(10月後半〜1月後半)
- やったこと
- 未経験からのPython文法 - PyQ
- Webアプリ・API - PyQ
- データ分析 - PyQ
- 機械学習 - PyQ
- スクレイピング - PyQ
- その他気になったクエストをつまみ食い
やってみての感想
よかったところ
- 学習に対するハードルの低さ
- 進行状況はサービスで管理されているため、自宅のデスクトップ、出先のノートPCと端末を変えても実行できるため、学習までのハードルを下げることができます
- PCさえあればできるので、ちょっと空き時間にやっとくか、ぐらいの気持ちで学習することができたのも継続につながったかなと
- サイトが重いとかいうこともなく(機械学習の回答チェックだけ他のコースと比べて少し時間かかりますが)サクサクできることもよかったです
- 環境構築が不要
- 演習に集中できる
- 1点目と被る点もありますが、コンテンツがコースとしてまとまっているため、どう進めればいいんだろう、と迷うことなく、今日はこれ!とできました
- 書いたコードのチェック→クリア→次ページ、と進む仕組みだが、コードのチェック、次ページに進行、にキーボードショートカットがあるのは非常に便利でした
- 始めた当初はページ送りにキーボードショートカットなかったと記憶しているのですが、いつの間にか追加されていたのも好印象でした
気になったところ
- 復習しにくい構成
- あくまで自分で手を動かすことがメインになっているため、あの処理どうするんだっけ?あの仕組みってどうだっけ?といったことを振り返ることがやりづらいです
- あくまでこのサービスはよくできた問題集の扱いで考えるといいのではないかと思いました
- 継続すればするほどコスパ悪
欲しい技術書まとめ
知人が技術書読んでて焦ったので読みたいやつをまとめた。 以前のセールでhonto使ったが、kindle Unlimitedも使っているので分散されるのを少々懸念している。むしろ分散化がよい、という見方もあるけど。。。どこで買うかなー。さすがに電子で買おうと思うが。
マインドセット的
- 作者: 安宅和人
- 出版社/メーカー: 英治出版
- 発売日: 2010/11/24
- メディア: 単行本(ソフトカバー)
- 購入: 48人 クリック: 660回
- この商品を含むブログ (145件) を見る
エンジニアの知的生産術 ──効率的に学び、整理し、アウトプットする (WEB+DB PRESS plusシリーズ)
- 作者: 西尾泰和
- 出版社/メーカー: 技術評論社
- 発売日: 2018/08/10
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
カイゼン・ジャーニー たった1人からはじめて、「越境」するチームをつくるまで
- 作者: 市谷聡啓,新井剛
- 出版社/メーカー: 翔泳社
- 発売日: 2018/02/15
- メディア: Kindle版
- この商品を含むブログを見る
独学プログラマー Python言語の基本から仕事のやり方まで
- 作者: コーリー・アルソフ,清水川貴之監訳,清水川貴之,新木雅也
- 出版社/メーカー: 日経BP
- 発売日: 2018/02/24
- メディア: 単行本
- この商品を含むブログ (4件) を見る
エンジニアリング組織論への招待 ?不確実性に向き合う思考と組織のリファクタリング
- 作者: 広木大地
- 出版社/メーカー: 技術評論社
- 発売日: 2018/02/22
- メディア: Kindle版
- この商品を含むブログを見る
コンピュータのしくみ
- 作者: デイビッド・A・パターソン
- 出版社/メーカー: 日経BP社
- 発売日: 2016/10/26
- メディア: Kindle版
- この商品を含むブログ (6件) を見る
Web系基礎
Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)
- 作者: 山本陽平
- 出版社/メーカー: 技術評論社
- 発売日: 2010/04/08
- メディア: 単行本(ソフトカバー)
- 購入: 143人 クリック: 4,320回
- この商品を含むブログ (183件) を見る
パケットキャプチャの教科書 (Informatics&IDEA)
- 作者: みやたひろし
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2017/10/14
- メディア: 単行本
- この商品を含むブログを見る
Python
- 作者: 岩崎圭,北川慎治,寺田学
- 出版社/メーカー: 翔泳社
- 発売日: 2017/08/07
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
スラスラ読める Pythonふりがなプログラミング (ふりがなプログラミングシリーズ)
- 作者: リブロワークス,株式会社ビープラウド
- 出版社/メーカー: インプレス
- 発売日: 2018/06/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
サイバーセキュリティプログラミング ―Pythonで学ぶハッカーの思考
- 作者: Justin Seitz,青木一史,新井悠,一瀬小夜,岩村誠,川古谷裕平,星澤裕二
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/10/24
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (11件) を見る
コーディング
プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識
- 作者: 矢沢久雄
- 出版社/メーカー: 日経ソフトウエア
- 発売日: 2007/04
- メディア: 単行本(ソフトカバー)
- 購入: 45人 クリック: 646回
- この商品を含むブログ (74件) を見る
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
- 作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/06/23
- メディア: 単行本(ソフトカバー)
- 購入: 68人 クリック: 1,802回
- この商品を含むブログ (140件) を見る
セキュリティ関連
Hacking: 美しき策謀 第2版 ―脆弱性攻撃の理論と実際
- 作者: Jon Erickson,村上雅章
- 出版社/メーカー: オライリージャパン
- 発売日: 2011/10/22
- メディア: 単行本(ソフトカバー)
- 購入: 9人 クリック: 163回
- この商品を含むブログ (19件) を見る
サイバーセキュリティテスト完全ガイド ~Kali Linuxによるペネトレーションテスト~
- 作者: Peter Kim,八木橋優,前田優人,美濃圭佑,保要隆明,株式会社クイープ
- 出版社/メーカー: マイナビ出版
- 発売日: 2016/08/01
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
- 作者: 結城浩
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/08/26
- メディア: 単行本
- この商品を含むブログ (19件) を見る
- 作者: IPUSIRON
- 出版社/メーカー: 翔泳社
- 発売日: 2017/08/03
- メディア: Kindle版
- この商品を含むブログを見る
- 作者: 岡本龍明
- 出版社/メーカー: 近代科学社
- 発売日: 2019/02/01
- メディア: 単行本
- この商品を含むブログを見る
- 作者: IPUSIRON
- 出版社/メーカー: データ・ハウス
- 発売日: 2015/01/23
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る
- 作者: IPUSIRON
- 出版社/メーカー: 翔泳社
- 発売日: 2017/08/03
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
資料作成
- 作者: 前田鎌利
- 出版社/メーカー: ダイヤモンド社
- 発売日: 2015/07/31
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (6件) を見る
参考にした/なりそうなサイト
shinyorke.hatenablog.com www.shoeisha.co.jp
まず欲しいのはこのあたりかなぁ、、、
- イシューからはじめよ――知的生産の「シンプルな本質」
- エンジニアの知的生産術 ──効率的に学び、整理し、アウトプットする
- スラスラわかるPython
ゼロ知識証明の記事について考えてみた
はてブ見てたらこんな記事があったので少し自分の考えを書いてみたいと思います。
元記事はこちらです。
コメントにあった例1,2だけ考えてみますね。
例1
アリスがボブにウォーリーを見せることで「アリスがパズルからウォーリーを見つけたこと」を証明しています。
ここでのポイントは
①アリスがボブに見せたウォーリーが本当にパズルのウォーリーなのか
②「見つけたこと」以外の情報は伝わっていないか
ということです。
それ踏まえると、以下のようだと理解しました。
証明1
アリスからはウォーリー以外の情報がないので、ボブとしてはこれが本当のウォーリーかどうか判断できません。
したがって、透かしを入れる例がありますが、これは例えばボブが渡す段階でウォーリーに名札でもつけておく、というのでもいいと思います。
アリスから届いたウォーリーが名札付きウォーリーなら他にも居ない、だから渡したパズルからとったのだろう、と検証できます。
そしてアリスからボブにはウォーリーしか伝わっていないので、パズルにおけるウォーリーの位置、は少なくともアリスからボブには伝わっていません。
証明2
(これがちょっとわからないのであくまで自分の理解、ということで了承ください)
パズルのサイズとは異なるカードボードを重ねて、ボブにウォーリーを見せたあとでカードボードを外せば元のパズルの上にカードボードがあった、ということを伝えられます。
そしてサイズが異なるカードボードを使うことで「パズルのウォーリーの位置」≠「カードボードのウォーリーの位置」となるため、「パズルのウォーリーの位置」は伝えずに済みます。
ただこれは外した段階でどこにいるかが伝わるんじゃないか、と思うので今ひとつピンときてないです。
例2
ボブがアリスに対してアリスがボールを入れ替えたかどうかを伝えることで「ボブは色が見えていること」を証明しています。
ここでボブはアリスに対して伝えていることは
・アリスがボールを入れ替えた
・アリスがボールを入れ替えていない
だけです。アリスが何色のボールを持っているかも、どの手にボールを持っているか、も伝えていません。誰かにこの情報の伝達をお願いしたとしても、何ら困ることはないのです。
暗号理論では「その暗号が安全である」ことを証明する事が必要で、ゼロ知識証明はその証明のための一つのテクニック(技術や手法、といってもいいかもしれません)、といえます。
(厳密に言えば、どんな仮定で、どんな根拠で、どれだけ安全か、ということもセットにしないといけません。)
仮想通貨はその話題性から色々話題になっていますが、その根本には暗号的な技術があるわけで、そういう意味では今後も目が離せない分野だと思っています。
勉強記録(2/14~2/18)
時間
先週はこれだけ、です。
感想
- セキュリティ以外のところはちんぷんかんぷんである
- セキュリティはひとまず(午前の範囲は)大丈夫
- 本文を読めば大丈夫なものは解説を読めば良いと思うが、さっぱりなものは確認が必要
- 勉強するのは楽しい
- 腰を据えてやれる体制を整えないと
課題
- 勉強時間があまり取れなかった
- どこまでやるか、の指針が立っていなかったので、焦りがなかった
- セキュリティ以外の分野の知識不足
要因と対策
要因:引っ越しに伴う荷造りで確保できなかった
対策:引っ越しは完了したため、そのぶんは確保できる 行き帰りの電車が長くなったので、有効活用したい要因:2月にやるべき作業量が見えていない
対策:5~6年分の過去問を3週+わからない分野の調査(後述)要因:単純に知識不足
対策:わからない点は確認が必要 わからない部分をまとめて休日にググる?参考書を買って一周してみる?
参考書を買うのはありだが、一周読むのは無駄が多い気もするが、、いずれにせよ確認にも使えて、いちいちググるよりは早いかも
【購入候補】キタミ式イラストIT塾 応用情報技術者 平成31/01年 (情報処理技術者試験)
- 作者: きたみりゅうじ
- 出版社/メーカー: 技術評論社
- 発売日: 2018/12/14
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
情報処理安全確保支援士試験受けます
タイトルのとおりです。 会社で自主学習をしなければいけない、的なものがあり、資格に受かればその勉強時間を充填できるというのもあって、いっちょやってみるか、と一念発起した次第です。 勉強法としてはこのページを参考にして lksdsw.hatenablog.com
- 【2月】過去問道場
- 【3月】(情報処理教科書)、重点対策、ポケスタ
- 【4月】過去問
の流れを考えています。セキュリティ以外の実務経験がないので、午前Iの範囲でちと難しい範囲もありますが、わからないことがわかるようになるのはやはり楽しいもので、楽しんでやれればなという気持ちです。 頑張ります。