LoginSignup
11

More than 5 years have passed since last update.

Python3とBeautifulSoupとrequests使ってブクログの本棚に本を登録

Last updated at Posted at 2018-08-19

はじめに

図書館で借りた本のログを取りたいなと思い、ブクログに本を自動で登録できないか確かめてみた。
最近さぼりがちだけど、昔からブクログ使ってるので、これができれば、もっと楽にログを残せそう。

コード

こんな感じ。
ログインして、keywordで検索して一番最初に出てきた結果のidを取得して本棚にaddする。

from bs4 import BeautifulSoup
import requests

payload = {
    'service':'booklog',
    'ref':'',
    'account':'xxx',
    'password':'yyy',
}

s = requests.Session()
res = s.post('https://booklog.jp/login/login', data=payload)
res.raise_for_status()
# print(res.text)                                                                    

payload1 = {
    #    'keyword': 'AI',                                                            
    'keyword':'超AI時代の生存戦略 : 「2040年代」シンギュラリティに備える34のリスト \\
大和書房',
    'service_id':'1',
    'index':'Books',
}

res = s.get('https://booklog.jp/search', params=payload1)
res.raise_for_status()
# print(res.text)                                                                    
soup = BeautifulSoup(res.text)
book_id = soup.find_all('a',class_='add-item')[0].get('href')
# print(book_id)                                                                     

payload = {
    '_method': 'add'
}

res = s.post('https://booklog.jp' + book_id, data=payload)
res.raise_for_status()
# print(res.text)                                                                    

いい感じに本棚に登録されたことを確認した。

おわりに

前回、図書館の貸出図書リストを取得できたので、これと繋いで、うまいことやろうと思う。

Python3とBeautifulSoup使って図書館で借りた本をスクレイピング - Qiita

ブクログの利用規約見ると、サーバーに大きな負荷かけなかったら問題なさそう。
責任はおえないけど。
https://booklog.jp/term
第11条(禁止事項)

参考

ブクログ Webやアプリで本棚管理できる/読書好きのためのブックレビューコミュニティ
Requests の使い方 (Python Library) - Qiita
PythonとBeautiful Soupでスクレイピング - Qiita
[Python] BeautifulSoup で Webスクレイピングをしてみる - ゾンビでもわかるPythonプログラミング

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11