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に追記してくれるワークフロー
