Google検索結果の一覧をCSVでダウンロードするブックマークレット
Google検索結果の一覧をCSVでダウンロードするブックマークレット:
Google検索はとても便利なので、日常的に利用しているのですが、
検索結果をまとめて一覧化したいことがありますよね。
検索画面に表示されるサイト名やページタイトル、URLをCSVファイルとして一覧で取得できれば、
ExcelやNumbers、Calcなどで使えて便利です。
スクレイピングやAPIで取得するなどの方法もありますが、
個人で利用するには、簡便に取得できれば十分でしたので、
ブラウザから誰でも利用できる、ブックマークレットを作りました。
ブラウザで新しいブックマークを作り、次の内容をURL欄に貼り付けます。
ブックマークの名前は、
Googleの検索結果画面で、登録したブックマークをクリックすると動作します。
ページをブックマークしておき、編集画面を選んだ後、URL欄にペーストするのがコツです。
Google Chromeのブックマークツールバーを表示させている場合のイメージです。
Google検索結果画面で、ブックマークを選ぶと、CSVファイルがダウンロードされます。
ダウンロードしたCSVファイルはそのまま開けます。
UTF-8でエンコードされています。
Excel、Numbers、CalcやGoogle Spreadsheetでそのまま開けます。
最新のブラウザを利用してください。
2019年1月15日時点
ブックマークレット用に変換する前のソースコードです。
Google検索結果画面の仕様が変わると、動作しなくなることが予想されます。
その際にはご容赦ください。
Googleの検索結果を手軽に一覧でCSV保存したい
Google検索はとても便利なので、日常的に利用しているのですが、検索結果をまとめて一覧化したいことがありますよね。
検索画面に表示されるサイト名やページタイトル、URLをCSVファイルとして一覧で取得できれば、
ExcelやNumbers、Calcなどで使えて便利です。
スクレイピングやAPIで取得するなどの方法もありますが、
個人で利用するには、簡便に取得できれば十分でしたので、
ブラウザから誰でも利用できる、ブックマークレットを作りました。
使い方
ブラウザで新しいブックマークを作り、次の内容をURL欄に貼り付けます。ブックマークの名前は、
Google検索結果CSVダウンロード
などで良いでしょう。Googleの検索結果画面で、登録したブックマークをクリックすると動作します。
javascript:(()=>{const b=d=>'"'+d.map(g=>g.replace(/"/g,'""')).join('","')+'"',c=new Blob([new Uint8Array([239,187,191]),[b(['href','decoded','title','breadcrumb','date','description'])].concat(Array.from(document.querySelectorAll('div.rc')).map(d=>{const g=d.querySelector.bind(d),h=g('div.r a').href,i=g('div.s span.f'),j=g('div.s span.st');let k=h;try{k=decodeURI(h)}catch(l){}return b([h,k,g('div.r h3').innerText,g('div.r cite').innerText,i?i.innerText.replace(' - ',''):'',j?i?j.innerText.replace(i.innerText,'').trimLeft():j.innerText:''])})).join('\n')],{type:/Chrome|Firefox/.test(navigator.userAgent)?'text/csv':'application/octet-stream'});if(navigator.msSaveOrOpenBlob)navigator.msSaveOrOpenBlob(c,document.title+'.csv');else{const d=URL.createObjectURL(c);location.href=d,setTimeout(()=>URL.revokeObjectURL(d),1e3)}})()
動作イメージ
Google Chromeのブックマークツールバーを表示させている場合のイメージです。Google検索結果画面で、ブックマークを選ぶと、CSVファイルがダウンロードされます。
ダウンロードしたCSVファイルはそのまま開けます。
保存されるCSV
UTF-8でエンコードされています。Excel、Numbers、CalcやGoogle Spreadsheetでそのまま開けます。
ヘッダ | 説明 | 空文字可能性 | 具体例 |
---|---|---|---|
href | URL | NO | https://ja.wikipedia.org/wiki/%E3%83%96%E3%83%83%E3%82%AF%E3%83%9E%E3%83%BC%E3%82%AF%E3%83%AC%E3%83%83%E3%83%88 |
decoded | decodURI() したURL |
NO | https://ja.wikipedia.org/wiki/ブックマークレット |
title | サイト名 or ページ名 | NO | ブックマークレット - Wikipedia |
breadcrumb | パンくずの表示 | NO | https://ja.wikipedia.org/wiki/ブックマークレット |
date | 更新日 | YES | 2019/1/15 |
description | ページの概要 | YES | ブックマークレット (Bookmarklet) とは、ユーザーがウェブブラウザのブックマークなどから起動し、なんらかの処理を行う簡易的なプログラムのことである。携帯電話のウェブブラウザで足りない機能を補ったり、ウェブアプリケーションの処理を起動する為に使 ... |
対象ブラウザ
最新のブラウザを利用してください。
動作確認結果
2019年1月15日時点ブラウザ | バージョン | 動作 |
---|---|---|
Google Chrome | 71.0.3578.98 | OK |
Firefox | 64.0.2 | OK |
Safari | 12.0.2 | OK ただし、 unknown.dms というファイル名のバイナリとしてダウンロードされるので、自分で拡張子を変更するか、開くアプリケーションを選択する必要があります。 |
Edge | 42.17134.1.0 | OK |
Internet Explorer | 11.472.17134.0 | NG 今後も対応しません。 |
Safariでダウンロードしたファイル unknown.dms
の開き方
- Finderでダウンロードフォルダを開きます。
unknown.dms
ファイルを選択し、名前をタップします。
unknown.csv
に書き換えます。
- ダイアログが表示されたら、「".csv"を使用」を選びます。
- 変更されたら、普通に開くことができるようになります。
ソースコード
ブックマークレット用に変換する前のソースコードです。(() => { const convert = row => '"' + row.map(s => s.replace(/"/g, '""')).join('","') + '"' const blob = new Blob([ new Uint8Array([0xEF, 0xBB, 0xBF]), [ convert([ 'href', 'decoded', 'title', 'breadcrumb', 'date', 'description' ]) ].concat(Array.from(document.querySelectorAll('div.rc')).map(rc => { const $ = rc.querySelector.bind(rc) const a = $('div.r a').href const f = $('div.s span.f') const st = $('div.s span.st') let decoded = a try { decoded = decodeURI(a) } catch (e) {} return convert([ a, decoded, $('div.r h3').innerText, $('div.r cite').innerText, f ? f.innerText.replace(' - ', '') : '', st ? (f ? st.innerText.replace(f.innerText, '').trimLeft() : st.innerText) : '' ]) })).join('\n') ], { type: /Chrome|Firefox/.test(navigator.userAgent) ? 'text/csv' : 'application/octet-stream' }) if (navigator.msSaveOrOpenBlob) { navigator.msSaveOrOpenBlob(blob, document.title + '.csv') } else { const url = URL.createObjectURL(blob) location.href = url setTimeout(() => URL.revokeObjectURL(url), 1000) } })()
免責
Google検索結果画面の仕様が変わると、動作しなくなることが予想されます。その際にはご容赦ください。
コメント
コメントを投稿