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検索結果画面の仕様が変わると、動作しなくなることが予想されます。その際にはご容赦ください。
コメント
コメントを投稿