その1 ブラウザで作成

書籍名 作者 出版社 サムネイル 販売ページ等を取得

手順

  1. マイライブラリを表示(楽天ブックスにログインしていればどこでも可)s
  2. F12などで、ブラウザの開発ツールにする(デバックモード)
  3. コンソール画面を選択
  4. コンソール画面に下記スクリプトを入力(コピー貼り付け。 エンターを押して実行)
  5. 一覧CSVができる

スクリプト

// init
let xhr = new XMLHttpRequest()

let domain = '<https://books.rakuten.co.jp>'
let deatailUrl = '<https://books.rakuten.co.jp/rk/>'

let items = []
let csvData = ""
let csvHead = 'productId ,isbn, adultType, title, authorName, companyName, imageUrl, detailUrl\\n'
//ptoductID, ISBN, adultContents, タイトル, 作者, 出版社, サムネイル画像, 販売ページ

let sort=5 //タイトル順

//let sort=2 //更新
//let sort=4 //購入順
//let sort=5 //タイトル順
//let sort=7 //著者名

let pp=1;

// function
function getItemsList(pn) {
  let url = domain + '/e-book/kobo/library/web-api?kw=&sort=' + sort + '&pn=' + pn + '&pc=100&sync=0&pv=1'

  xhr.open('GET', url, false)
  xhr.send()  
console.log(xhr.responseText)
}
       console.log('START')

// request result
xhr.onreadystatechange = function() {

  switch ( xhr.readyState ) {
    case 0:
      console.log('uninitialized')
      break
    case 1:
      console.log('loading...')
      break
    case 4:
      if(xhr.status == 200) {
        console.log('200')
        let data = xhr.responseText
        data = JSON.parse(data)
        console.log(data)

        if(data.result.items) {
          items.push(...data.result.items)
        }
        if(data.result.meta.endNum == data.result.meta.sumCount) {
 	    break
        }
        if(data.result.items== null) {
	    break
        }
        pp= pp+1
        getItemsList(pp)
      } else {
        console.log('Failed')
      }
      break
  }
}

// action
getItemsList(pp)
// to csv
items.forEach(item => {
//  csvData += '"' + item.id + '","' + item.title+ '","' + item.item.authors + '"\\n'
  csvData += '"' + item.productId + '","' + item.isbn + '","' + item.adultType + '","' + item.title + '","' + item.contributors + '","' + item.mfrName + '","' + item.imageUrl + '","' + deatailUrl + item.productId + '/"\\n'

})
//   console.log(csvData)
window.location = 'data:text/csv;charset=utf8,' + encodeURIComponent(csvHead + csvData)
//window.location = 'data:text/csv;charset=utf8,' + encodeURIComponent(csvData)