GarretCafe

いいモノを安く使いコスパを重視して生きていく人のためのブログ。お金がなくても楽しく生きていける。

                            

Pythonistaでブログのリンクを生成するスクリプトの完成版ができました

OMG150918500I9A6386 TP V

昨日Python3にリンクスクリプトを対応させました。

BeautifulSoup4(以下bs4)というモジュールを使えば、もっと簡単にスクレイピングできるのになぜHTMLParserでスクレイピングをしてたかというと、bs4のインストールが面倒くさいなと思ったからです。

デコードもなにからなにまで簡単になるbs4を出来れば使いたい。そうすれば、不意に出てくるエラーも解消されるのに。と思いながらドキュメントを覗いていたら、なんと最初から入っていました、bs4。
相も変わらずすごいですねPythonistaは。

そういうことで、エンコードエラー防止と、手間の半減、リスト形式の追加のために新しくスクリプトを書き直してきました。

インストールは前回までと同じです。

Pythonista 3
カテゴリ: 仕事効率化, 教育

↑も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&#91;0&#93; + '" 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形式まで持っていくことができるようになりました。

まんぞくまんぞく。