版元ドットコムの新刊情報からISBNだけをとてみようと書いてみた。openBDからでも取れるかと思ったけど、新刊情報はややとりにくそうだった。どうしてもISBNなので電子書籍の新刊が取得できないという問題が有る。
新しい本からテキストで表示を選んでから。F12でコンソールを表示して、
table=document.getElementsByTagName('table')[0].children[0].children
isbn=;//配列宣言
for (let i = 0; i < table.length; i++) {
isbn[i]=table[i].children[2].children[0].innerText
isbn[i]=isbn[i].replace( /\s| /g , '' )
}
copy(isbn)
とコピペして実行すると、ISBNが100ぐらい取得できる。
amazonのページからキンドルのASINだけを取りたいときは。
1ページ目の場合
table=document.getElementsByClassName("s-color-twister-title-link")
asin=;//配列宣言
for (let i = 0; i < table.length; i++) {
asin[i]=table[i].href
asin[i]=asin[i].replace( /^.+dp\/(\w+)\/.+$/g , '$1' )
}
2ページ目以降
table=document.querySelectorAll("h2.a-size-mini > a")
asin=//配列宣言
for (let i = 0; i < table.length; i++) {
asin[i]=table[i].href
asin[i]=asin[i].replace( /^.+dp\/(\w+)\/.+$/g , '$1' )
}
2つを切り替えるのが面倒だからif文で切り替えて。
if(document.querySelectorAll("h2.a-size-mini > a")[0] != null){
table=document.querySelectorAll("h2.a-size-mini > a")
asin=//配列宣言
for (let i = 0; i < table.length; i++) {
asin[i]=table[i].href
asin[i]=asin[i].replace( /^.+dp\/(\w+)\/.+$/g , '$1' )
}
}
else{
table=document.getElementsByClassName("s-color-twister-title-link")
asin=[]//配列宣言
for (let i = 0; i < table.length; i++) {
asin[i]=table[i].href
asin[i]=asin[i].replace( /^.+dp\/(\w+)\/.+$/g , '$1' )
}
}asin
するとASINが16個取得できる。あとはこれにpa-apiをつなげると、HTMLの出力まで自動化できるかな。
["B084GP19N7", "B085G163PB", "B084QBQDZ3", "B085FZ6ZWM", "B0834SM8FB", "B085H8PW12", "B0832DQP55", "B084JP4NFT", "B0855LZPD3", "B082W598JG", "B0847LF6Z1", "B07PCNK1T7", "B084ZCRMD3", "B0848KGZT4", "B0848XCZBG", "B084YYQB4M"]