Python
BeautifulSoup
Pythonista3

Pythonista3でブラウザで開いているURLのタイトルを取得する

iPhoneで見ていたページを共有する方法は幾つかあるが、その場で共有するならともかく、一旦、どこかで保持してから共有するのは、どうも使いにくい。下の3枚の画像は①SafariからiOS標準のメモ帳で記録し、②メモ腸からTwitterで共有する、という流れだが③でURLの情報が失われている。

01.png

といって、URLだけ保存していると、QiitaのURLのように、あとでURLを見て何のページかわからない。そこでPythonista3でURLにタイトルを付与するというスクリプトを書いてみた。利用イメージとしては、下の3枚の画像のように①事前にPythonistaを有効にしておき、②Safariの共有で「Run Pythonista Script」を起動して、③URLを送るスクリプトを送るという流れである。

02.png

URLはappex.get_url()もしくはクリップボードから取得し、タイトルの取得にはBeautifulSoupを使っている。

import sys

import appex
import urllib.request
import clipboard
from bs4 import BeautifulSoup

def main():
if appex.is_running_extension():
url = appex.get_url()
else:
url = clipboard.get()

try:
html = urllib.request.urlopen(url=url)
soup = BeautifulSoup(html, 'html.parser')
title = soup.title.string
print(title+'\r\n'+url)
clipboard.set(title)
except:
print(url)
print(sys.exc_info()[0])
pass

if __name__ == '__main__':
main()

後半にprint(title+'\r\n'+url)で書いているようにタイトル、URLの順で画面表示され、クリップボードにタイトルが格納される。

単にタイトルを取得するだけでなく、あんなことやこんなことにも応用できそうだ。