主要特性
- 前一陣重新組織了一下程式碼, 加了命令列help資訊, 用起來更方便了一些
- 初步實現了豆瓣小組及使用者相關的API爬蟲和請求
- 基於requests和lxml, 沒有用高階的諸如scrapy之類的爬蟲工具
- 所有的命令列輸出都是標準的json格式, 可以使用jq操作
安裝
僅支援python3
pip3 install --upgrade dbapi
使用
兩種命令模式: 客戶端介面呼叫和豆瓣模組介面呼叫
# 呼叫客戶端自身API, 比如 dbapi use <cookies>
dbapi <api> [options...]
# 呼叫豆瓣模組API, 比如 dbapi group list_user_topics
dbapi <module> <api> [options...]
-
檢視幫助資訊: 可以列出所有的命令及引數
dbapi --help
-
使用者登入: 有兩種形式, 一種是直接用使用者名稱和密碼登入, 另一種是直接使用cookie, 因為沒有做驗證碼破解, 所以在頻繁登入遇到驗證碼之後可以通過Chrome控制檯拿到cookie之後直接丟給客戶端登入
# 使用者名稱和密碼登入, 注意密碼是在命令列裡的, 有可能會在你的歷史記錄裡面留下密碼 # 雖然這是使用者模組的命令, 但是因為是全域性依賴, 所以就放到客戶端裡面了 dbapi login <username> <password> # 使用cookie登入, 注意cookie裡面關鍵的session id被設定了http only, 需要到network tab下面獲取 dbapi use <cookies>
-
重新整理會話資訊: 檢查本地儲存的會話資訊是否已經過期, 會話資訊會預設儲存到
$HOME/.__cache__dbapi.json
中dbapi flush
-
命令列表: 目前有使用者(people)模組和小組(group)模組的命令, 具體如下:
# -------- 小組部分 --------# # 建立評論 dbapi group add_comment <topic_id> <content> <reply_id> # 建立小組 dbapi group add_group <kwargs> # 建立討論 dbapi group add_topic <group_alias> <title> <content> # 獲取討論資訊 dbapi group get_topic <topic_id> # 申請加入小組 dbapi group join_group <group_alias> <message> # 退出小組 dbapi group leave_group <group_alias> # 話題點贊 dbapi group like_topic <topic_id> # 獲取評論過的話題列表 dbapi group list_commented_topics <start> # 獲取評論列表 dbapi group list_comments <topic_id> <start> # 獲取加入的小組列表 dbapi group list_joined_groups <user_alias> # 已加入的所有小組的話題列表 dbapi group list_joined_topics <start> # 獲取點讚的話題列表 dbapi group list_liked_topics <user_alias> <start> # 獲取推薦的話題列表 dbapi group list_reced_topics <user_alias> <start> # 獲取小組話題列表 dbapi group list_topics <group_alias> <_type> <start> # 列出使用者在話題下的所有回覆 dbapi group list_user_comments <topic_id> <user_alias> # 發表的話題 dbapi group list_user_topics <start> # 推薦話題 dbapi group rec_topic <topic_id> # 刪除評論 dbapi group remove_comment <topic_id> <comment_id> <reason> <other> # 刪除話題下所有自己的評論 dbapi group remove_commented_topic <topic_id> # 刪除小組 dbapi group remove_group <group_id> # 刪除話題 dbapi group remove_topic <topic_id> # 搜尋小組 dbapi group search_groups <keyword> <start> # 搜尋話題 dbapi group search_topics <keyword> <sort> <start> # 喜歡話題 dbapi group undo_like_topic <topic_id> # 取消推薦話題 dbapi group undo_rec_topic <rec_id> # 更新話題 dbapi group update_topic <topic_id> <title> <content> # -------- 使用者部分 --------# # 新增相簿 dbapi people add_album <kwargs> # 新增相簿評論 dbapi people add_album_comment <kwargs> # 新增照片 dbapi people add_photo <kwargs> # 新增照片評論 dbapi people add_photo_comment <photo_id> <content> # 新增說說 dbapi people add_status <kwargs> # 獲取相簿 dbapi people get_album <album_id> # 獲取使用者資訊 dbapi people get_people <user_alias> # 獲取照片 dbapi people get_photo <photo_id> # 喜歡照片 dbapi people like_photo <photo_id> # 喜歡說說 dbapi people like_status <status_id> # 獲取相簿列表 dbapi people list_albums <user_alias> # 獲取關注使用者列表 dbapi people list_contacts <user_alias> <start> # 獲取照片評論列表 dbapi people list_photo_comments <photo_id> <start> # 獲取照片喜歡列表 dbapi people list_photo_likes <photo_id> <start> # 獲取照片推薦列表 dbapi people list_photo_recs <photo_id> <start> # 獲取照片列表 dbapi people list_photos <album_id> # 獲取粉絲列表 dbapi people list_rev_contacts <user_alias> <start> # 獲取說說評論列表 dbapi people list_status_comments <user_alias> <start> # 獲取說說列表 dbapi people list_statuses <user_alias> <start> # 推薦照片 dbapi people rec_photo <photo_id> # 刪除相簿 dbapi people remove_album <album_id> # 刪除相簿評論 dbapi people remove_album_comment <kwargs> # 刪除照片 dbapi people remove_photo <photo_id> # 刪除照片評論 dbapi people remove_photo_comment <comment_id> # 刪除說說 dbapi people remove_status <status_id> # 取消喜歡照片 dbapi people undo_like_photo <photo_id> # 取消喜歡說說 dbapi people undo_like_status <status_id> # 取消推薦照片 dbapi people undo_rec_photo <photo_id> # 更新相簿 dbapi people update_album <kwargs>
原始碼
GitHub: https://github.com/acrazing/d…