Pythonistaでブログのリンクを生成するスクリプトの完成版ができました
2018/08/14
昨日Python3にリンクスクリプトを対応させました。
BeautifulSoup4(以下bs4)というモジュールを使えば、もっと簡単にスクレイピングできるのになぜHTMLParserでスクレイピングをしてたかというと、bs4のインストールが面倒くさいなと思ったからです。
デコードもなにからなにまで簡単になるbs4を出来れば使いたい。そうすれば、不意に出てくるエラーも解消されるのに。と思いながらドキュメントを覗いていたら、なんと最初から入っていました、bs4。
相も変わらずすごいですねPythonistaは。
そういうことで、エンコードエラー防止と、手間の半減、リスト形式の追加のために新しくスクリプトを書き直してきました。
インストールは前回までと同じです。
Pythonista 3
カテゴリ: 仕事効率化, 教育
- 参考記事
- PythonとBeautiful Soupでスクレイピング - Qiita
- Python で HTML をパースする (Beautiful Soup) | まくまく Python ノート
- Python3ã�§ã€�urllibã�¨BeautifulSoupを使ã�£ã�¦Webãƒšãƒ¼ã‚¸ã‚’èª ã�¿è¾¼ã‚€ - minus9d's diary
- HTML解析(パーサ) - Python入門から応用までの学習サイト
- PythonでHTML解析 | OpenBook
↑もbloglineを使って作ったものです。快適。
bloglink
以下をコピーして新しいファイルとして登録してください。
必要な他のファイルはcliplinkだけです。
# coding: utf-8 import clipboard import console import codecs import urllib from bs4 import BeautifulSoup def loadTitle(url): resp = [] #take care reset position html = urllib.request.urlopen(url) soup = BeautifulSoup(html) resp.append(url) resp.append(soup.title.string) return resp def createLink(url): mylink = loadTitle(url) mytext = '<a href="' + mylink[0] + '" target="_blank">' + mylink[1] + '</a>' return mytext def makeList(): text = '' with codecs.open('LinkStack.txt', 'r', 'utf-8') as f: for line in f: if line.startswith('http'): text += '\t' + '<li>' + createLink(line[:-1]) + '</li>' + '\n' else: pass text = "<ul class='sankou'>\n\t<li>参考記事</li>\n" + text + '</ul>' return text def makeLink(): text = '' with codecs.open('LinkStack.txt', 'r', 'utf-8') as f: for line in f: if line.startswith('http'): text += createLink(line[:-1]) + '\n' else: pass return text def clipLink(TEXTLINK): if not TEXTLINK: console.alert('No Stack', '', 'OK', hide_cancel_button=True) return clipboard.set(TEXTLINK) console.alert('Link Created!', '', 'OK', hide_cancel_button=True) with codecs.open('LinkStack.txt', 'w', 'utf-8') as f: f.write('') if __name__ == '__main__': res = console.alert('Send Clipboard', '', 'Link', 'List', hide_cancel_button=False) if res == 1: clipLink(makeLink()) elif res == 2: clipLink(makeList())
最初のポップアップでlinkを答えるとlinkの一覧が、listを答えるとli形式となってペーストボードに張り付きます。
これでiPadでブラウジングしている最中に参考文献としてリンクとためておいて、一気に吐き出してlist形式まで持っていくことができるようになりました。
まんぞくまんぞく。
【追記 2018年8月14日】
しばらく年月を経てリメイクしました.
SafariからでもクリップボードからでもURLを渡すとリンクタグを作ってTextwellに追記してくれるワークフロー