search_link – 検索結果をMarkdown形式で取得するPythonスクリプト

これは何?

SearchLinkというMac用のサービスがあります。かなりお気に入りで愛用していました。サービスの中身はRubyで書かれているのですが、正直さっぱりわからない。

それでも多少調べて改造したりしていたのですが、前回のアップデートで大幅な変更があり、いよいよ何が書いてあるのかわからなくなってきました。まあ1つずつ調べたらいいんですが。

そこで自分が使う機能だけピックアップしてPythonで似たものを作ってみました。という事で、search_linkはSearchLinkの劣化コピー版です。しかも独自仕様。

できること

  • ウェブ検索(Bing Search API)
  • URLからタイトルを取得
  • iTunes Store検索
    • iPhoneアプリ
    • iPadアプリ
    • Macアプリ
    • 映画
    • 音楽(アーティスト、アルバム、曲)
    • ポッドキャスト
    • 書籍

これらを検索して、1番目の結果をMarkdown形式のリンクにして取得します。デモ用に動画を撮影したのでどうぞ。


search_link Demo

使い方

基本的に検索種 検索語の形式で検索します。間は半角か全角スペース。大文字小文字は問いません。例えばmac marked 2だとMac App Storeのmarked 2を検索します。検索結果はこう。

[Marked 2](https://itunes.apple.com/jp/app/marked-2/id890031187?mt=12&uo=4)

titleはURLからタイトルを取得します。例えばこのブログならタイトル https://halspg.wordpress.com/と書いて、結果はこうなる。

[hal’s Playground | 興味のあるあれこれの雑記帳](https://halspg.wordpress.com/)

検索種を省略するとiPhoneアプリを検索します。例えばPythonistaで検索するとこう。

[Pythonista](https://itunes.apple.com/jp/app/pythonista/id528579881?mt=8&uo=4)

[ 検索種一覧 ]

Arguments Description
Web, 検索 Bingで検索します
Title, タイトル URLからタイトルを取得します
iPhone App StoreのiPhoneアプリを検索します。省略可能
iPad App StoreのiPadアプリを検索します
Mac Mac App StoreのMacアプリを検索します
Movie, 映画 iTunes Storeの映画を検索します
Artist, アーティスト iTunes Storeのアーティストを検索します
Album, アルバム iTunes Storeのアルバムを検索します
Song, ソング, 曲 iTunes Storeの曲を検索します
Podcast, ポッドキャスト iTunes StoreのPodcast番組を検索します
Book, 本, 書籍 iTunes Storeの書籍を検索します

インストール

Pythonista版とEditorial版、Macのサービスで使うのを想定したMac版があります。

web検索をつかうにはBing Search APIのAPIキーが必要になります。APIキーの取得については下に説明を書きました。

Pythonista版

コンソールに以下のコードを貼り付けて実行して下さい。

import requests; exec requests.get('https://dl.dropboxusercontent.com/u/151393/Utility/search_link/search_link_for_pythonista_installer.py').content

実行後、ルートにsearch_link.py、site-packagesフォルダにbing_api.pyが作成されていれば成功です。

Editorial版

コンソールに以下のコードを貼り付けて実行して下さい。

import requests; exec requests.get('https://dl.dropboxusercontent.com/u/151393/Utility/search_link/search_link_for_Editorial_installer.py').content

実行後内蔵ブラウザでワークフローの公開ページを開くのでインストール。pypi-modulesフォルダにbing_api.pyが作成されていれば成功です。

Mac版

Python2.7.9で動作を確認しています。Macのサービスに登録して使うのを想定しています。モジュールは標準以外だとrequests、Beautiful Soup 4、bingpyが必要です。

search_link.pyを保存してください。

多分Python3では動きません。printprint()にするだけで動いたりするんだろうか。環境作ってないので試せませんが。

一応インストール用ファイルも用意してあります。

import urllib2; exec urllib2.urlopen('https://dl.dropboxusercontent.com/u/151393/Utility/search_link/search_link_for_Mac_installer.py').read()

Bing Search APIキーの取得

以下から取得します。要Microsoftアカウント。無料で月5000回使えるようです。

今回Bing関連は全てこの記事を参考にしています。

今後の予定

  1. コード見直し
  2. ウェブ検索に個別のサイト検索を追加できるようにする
  3. 設定の外出し or 設定項目を一箇所にまとめる
  4. その他欲しい機能があれば追加
  5. Python3で動くようにする
  6. iTunesのアフィリエイトプログラムに対応させる
  7. リンクの書き出し形式を変更できるようにする

アフィリエイトリンク対応は必要かと思いましたが、使っていないのでいまいち仕様を把握できておらず、今回は省きました。わかる方はits_search()の書き出し部分に追記してください。

おまけ

1Writer – Note taking, writing app用のアクションを用意しました。Pythonista版のsearch_linkと連携します。

あとがき

とりあえずできたので公開します。やっぱりエディタと一体のEditorialはこの手のスクリプトと相性が良いですね。いかんせん安定せず落ちまくるので早くアップデートしてほしい。

広告

search_link – 検索結果をMarkdown形式で取得するPythonスクリプト」への1件のフィードバック

  1. ピンバック: search_link Ver.1.2 | hal's Playground

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中