ブラウザでアクセスするすべてのURLをコマンドラインでライブキャプチャし、それらを別のプログラムにパイピングするのが好きです。どうすればこれを行うことができますか?
形式は、1行につき1つのURLのみで、他には何も、タブ、スペースなどがありません。
これは私がこれまでに得たものです。タブの削除が機能していません。 誰かに返信するコメントを見たことがあります (一番下に)エスケープする必要があるというgrepへのパイピングに問題がなかった人。私はこれを本当に理解していません。
Sudo httpry -F -i eth0 -f Host,request-uri | tr -d 't'
また、これが機能する場合でも、httpsでは正しく機能しませんか? httpsを含むこれを行う別の方法はありますか?存在する場合は、FirefoxとChromiumのブラウザプラグインを使用します。訪問したすべてのURLをスクリプトに送信したいだけです。
ブラウザの履歴をライブで解析してパイプすることができますか?
ネットワークトラフィックのキャプチャは可能ですが、面倒です。 HTMLを介して通信する多くのアプリケーションが私のコンピューターで実行されており、それらは自動化されたAPI処理でfillログアップし、訪問した内容を反映しませんI。
そして、あなたが正しく言うように、それはあなたにHTTPSを表示しません。 URLは、リクエストの暗号化された部分です。
ブラウザを直接ターゲットにします。これらはSQLite3データベースに十分な履歴を保持するため、sqlite3パッケージをインストールすると、クエリが非常に簡単になります(Sudo apt-get install sqlite3
)。以下を実行するだけです:
sqlite3 ~/.mozilla/firefox/*.default/places.sqlite "select url from moz_places order by last_visit_date desc limit 10;"
そして、最後にアクセスした10個のURLが出力されます。
Chromeにも同様の設定があり、同様に簡単に照会できます。
sqlite3 ~/.config/google-chrome/Default/History "select url from urls order by last_visit_time desc limit 10;"
これは機能しますが、Chromeでデータベースロックの問題がいくつかありました。 Firefoxの方がはるかに信頼できるようです。私が見つけたデータベースロックを回避する唯一の方法は、データベースのコピーを作成することでした。これは、メインDBがロックされている場合でも機能し、問題を引き起こすことはありません。
cp ~/.config/google-chrome/Default/History history.tmp
sqlite3 history.tmp "select url from urls order by last_visit_time desc limit 10;"
rm history.tmp
このアプローチは、Firefoxにもお勧めです。 FFはロックしていないように見えます(または、より短いロックを取得します)が、書き込み中にキャッチした場合に何が起こるかわかりません。
これをliveディスプレイに変換するには、ポーリングする必要があるもの(SQLクエリが関係していないので問題ないかもしれません)またはinotifywait
のようなものを使用して変更用のデータベースファイル。