pythonでクリップボードの内容をキー一発でGoogle検索する

Python3

みなさん、検索するとき、どうしてますか?

最近Evernote使うようになって、メモ帳使っていた私は便利さにクラクラしてたのですが、一太郎とかにある、右クリックで検索に送る機能がない。

そこで、私は、右クリック(またはCTRL-C)でコピーして、常時起動しているブラウザの検索窓に貼り付けて検索してました。

正直面倒くさいです。

コンピュータなんだから省力化しましょうよ。Evernoteに限らず、右クリックのメニューに出そうと思いました。無理。各アプリケーションソフトで規定しているものなので、全アプリに挿入できるものではありませんでした。

でも、クリップボードに文字列を移動してしまえば、あとはなんとかなります。

使い方

検索したいテキストをコピーし、CtrlキーとF12キーを同時押しすると、自動的にchromeブラウザが立ち上がってクリップボードの内容を読み込んで検索します。

※chrome以外のブラウザは有料で対応することにします(後述)

インストール方法

ダウンロード

ダウンロードしたPushSrearch.zipを解凍し中のPushSrearch.exeを適当な場所に置いて、そのショートショートをスタートアップに登録windowsの再起動

スタートアップ登録方法

エクスプローラーを表示し、[アドレスバー] にshell:startupを入力してEnterキーを入力します

対応機種

Windows10+chrome

ソースコード

Python 3.8.3rc1にて作成。たいしたコードではないので、必要に応じて改変してください。ブラウザ変更などご相談に乗りますが有料です。

なにをやっているかはコメント参照のこと。なんか謎のBluetoothエラーが出ていたりして目障りだったので抑止してます。あとは簡単でした。

importしているので、事前にpipしてください。

>pip install keyboard
>pip install selenium
>pip install pyperclip

ご使用のchromeと同じバージョンのwebdriverをここよりダウンロードして、解凍しexeをc:\driverフォルダの中に入れてください。

ソースをPushSrearch.pyとして保存

そして、exe化します。

>pip install pyinstaller

でインストーラツールをダウンロードし、

>pyinstaller PushSearch.py --onefile --noconsole

で、一つにします。

いじょ

""" クリップボードの文字列からブラウザを開きGoogle検索を行う
                            programming of Makoto Shiihara
                            2020/05/15
 """

import keyboard
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
import pyperclip

options = Options()
options.add_argument('--log-level=3') # 動作に無意味なErorr抑止


while True:  
    try:  # used try so that if user pressed other than the given key error will not be shown
        if keyboard.is_pressed("ctrl+F12"):  # if key 'ctrl F12' is pressed 
                   
            driver = webdriver.Chrome(chrome_options=options, executable_path="C:\\driver\\chromedriver.exe")

            # クリップボードの文字列を取り込む
            word = pyperclip.paste()

             # グーグルを開く
            driver.get("https://www.google.co.jp")

            # 検索ワード入力
            search_box = driver.find_element_by_name("q")
            search_box.send_keys(word)

            # 検索実行
            search_box.send_keys(Keys.RETURN)

        else:
            pass
    except:
        break

やりたかったけど諦めたこと

どのアプリでも文字をドラッグしたら取り込んでボタン一発で検索する

→マウスやキーによる選択、取り出しはアプリ依存なので対応が難しい(できない訳ではないらしいが、teratailに質問投げてもまったく回答来ず)

検索するときに出る、コマンドプロンプト(黒い窓)を出ないようにしたい。

→WebDriverの仕様上抑止できないことが判明。WebDriver自体を書き換えないと無理だが、日々進化するブラウザにいちいち対応するのが現実的では無い。

免責事項

このソフトが原因で損害が起こっても責任持ちません。ただ、アプリの仕様上危険なものではないはずです。開発マシンのCPUはi5ですが、CPU使用率が30%でした。低スペックのマシンだと重くなるかもしれません。まあ、入れてみてダメだったら外してください。

カスタマイズ承ります。一件、3千円。

コメント

タイトルとURLをコピーしました