#1 - 2014-8-20 00:49
ドール
2014-8-21:

更新:
增加恢复功能,使用时加 -r / --restore 参数,从本地读取文件

---------------------------------------------------------------------------------------------------------------
2014-8-20:

大家好,我又来了,这次搞了个bangumi条目导出到本地以及批量删除的工具

代码在
https://github.com/hentaiPanda/bgm_tenkou

这是一个python3工具
装过python的和nix用户应该不用讲了(不过我没有在nix上测试过)


下面对不懂的说一下安装方法


首先安装python环境

https://www.python.org/downloads/ 下载左边的『Download Python 3.4.1』并安装

再到 https://github.com/hentaiPanda/bgm_tenkou 点击右下角的『Download ZIP』 下载完成后解压即可使用

(这是命令行工具,不是双击启动的)


因为考虑网速问题,我在百度盘也放了一份

http://pan.baidu.com/s/1mgkKTy4

密码:s89m

python也在里面


使用方法

Bangumi有时候连接情况不太好,会一直卡在某个地方

Don't panic!

如果是网络情况不好可以换个时间再试

参数说明:


tenkou.py [-h] [-d {chii.in,bgm.tv,bangumi.tv}] [-u UID]
          [--password PASSWORD] [--wipe] [-p PATH] [--auth AUTH]
          [--useragent USERAGENT] [--authfile AUTHFILE] [-v]




-h, --help                  帮助
-d DOMAIN, --domain DOMAIN  选择域名,默认bgm.tv, 还可选择bangumi.tv或chii.in
-u UID, --uid UID           你的id
--password PASSWORD         你的网站登录密码
-p PATH, --path PATH        本地保存目录,必须事先建立
--auth AUTH                 auth字符串
--useragent USERAGENT       你浏览器的User-Agent
--authfile AUTHFILE         保存User-Agent和Auth字符串的文件(Authfile)位置
--wipe                      删除所有条目!谨慎使用!
-r, --restore               恢复条目
-v, --version               程序版本


只有id是必须的,不需要导出进度的话,不必输入密码

使用举例

以下只是举例,你可以自由搭配

1. tenkou.py -u 9999999                  导出id为9999999那人的条目

2. tenkou.py -u 9999999 -p ./bgm_backup  备份到当前位置的bgm_backup目录

3. tenkou.py -u 9999999 --password 123
                                         使用密码登录,导出id为9999999的条目,包括观看进度

4. tenkou.py -u 9999999 --useragent Mozilla --auth LFJDSLAF%LFASJD
                                         使用auth,导出id为9999999的条目,包括观看进度

5. tenkou.py -u 9999999 --authfile ./authfile.txt
                                         使用authfile,导出id为9999999的条目,包括观看进度

6. tenkou.py -u 9999999 --password 123 --wipe
                                         使用密码,导出id为9999999的条目,包括观看进度
                                         完全删除条目

7. tenkou.py -u 9999999 --useragent Mozilla --auth LFJDSLAF%LFASJD --wipe
                                         使用auth,导出id为9999999的条目,包括观看进度
                                         完全删除条目

8. tenkou.py -u 9999999 --authfile ./authfile.txt --wipe
                                         使用authfile,导出id为9999999的条目,包括观看进度
                                         完全删除条目

9. tenkou.py -u 9999999 --password 12345 -p ./backup -r
                                         使用密码,从当前工作目录下的backup目录读取文件,
                                         恢复id为9999999的条目


注:大量恢复或者删除条目过程中因为网络情况(你的连接问题或者服务器的保护机制,如果有的话)而出错的可能性会比较大。如果是恢复条目时,问题还不严重,因为本地文件还保留着。但在删除条目过程中如果发生错误,你会丢失条目记录或者删除不完全,所以虽然删除可以和导出同时进行,仍建议先导出一次再删除。

获取Auth和User-Agent的方法

直接查看你浏览器的调试工具,这个Auth就是cookie里的Auth


什么是Authfile

只是一个文本文件,保存了User-Agent和Auth字符串

其中,第一行是User-Agent;第二行是Auth字符串

authfile文件名任意,上面只是举例而用了authfile.txt

需要同时提供密码和Auth吗?

不需要,密码、User-Agent和Auth、Authfile三选一即可

可以参考上面的使用举例

有更简单的方法获取Auth和User-Agent吗?

和tenkou.py同时提供了一个getcookie.user.js的greasemonkey/tampermonkey脚本

安装后在bangumi页面可以查看并自动复制你的User-Agent/Auth,你可以手动分拆开来输入,或者直接新建一个authfile

如图所示:

Firefox GM



Chrome Tampermonkey



结果



安全性?你会知道我的密码吗?

不会,只是你本地和网站的通信,没有什么信息会传到我这里

至于密码和Auth方式,因为这个只是用cookie的auth,没什么大的差别

最后生出的备份文件说明

最后的备份文件按

A段:

    动画(anime)
    音乐(music)
    游戏(game)
    书籍(book)
    三次元(real)

以及B段:

    在看(do)
    看过(collect)
    想看(wish)
    搁置(on_hold)
    抛弃(dropped)

来命名

组成形式为bangumi_A段_B段.txt

比如

bangumi_anime_do.txt
bangumi_book_collect.txt


最后大概是这种感觉

#2 - 2014-8-20 02:43
(买漫画切记远离烂店“漫爵”&“神话典传” ...)
(bgm38)还能导出到本地了
阿叉好厉害
#3 - 2014-8-20 03:22
阿叉是bgm最后的良心。

等导出了全部进度,应该就能安心回老家结婚了(bgm38)

不知是不是可以考虑再有一个逆向操作的程序,从本地备份导回bgm
#3-1 - 2014-8-20 09:55
SuNNy
+1
#3-2 - 2014-8-21 19:46
ドール
增加参数 -r / --restore 从文件读取

效果


大量条目时有可能无法一次全部导入,不清楚是不是频繁的请求导致服务器拒绝还是单纯我这里的网络问题


如果愿意可以手工分拆文件,文件名保持相同,文件编码是无BOM的UTF8就行了(没有测试过分拆,理论上应该没问题)

例如本来bangumi_anime_collect.txt这个文件里面包含

1. abcd
地址:xxxxx
简评:xxxxxx
2014-8-21

2. efgh
地址:xxxxx
简评:xxxxxx
2014-8-21



可以分拆成:
bangumi_anime_collect.txt
1. abcd
地址:xxxxx
简评:xxxxxx
2014-8-21


bangumi_anime_collect.txt
2. efgh
地址:xxxxx
简评:xxxxxx
2014-8-21


嗯,两个文件名是相同的,因为怕读取到奇怪的文件所以把文件名模式设定死了
不过重要的是collect这个字段不能变,也就是上面说的B段,前面用bangumi_real或者bangumi_game都没关系(只要没有重名文件)
比如说可以把分拆的文件分成bangumi_anime_collect.txt和bangumi_real_collect.txt

这两个分拆文件可以放在两个文件夹里,比如bk1和bk2,先从bk2读取,完成后在读取bk1
参数的顺序可以随意
比如
tenkou.py -u 123 --password 123 -p ./bk1


tenkou.py -p ./bk1  --password 123 -u 123

是一样的
#3-3 - 2014-8-21 22:07
树洞酱
ドール 说: 增加参数 -r / --restore 从文件读取

效果


大量条目时有可能无法一次全部导入,不清楚是不是频繁的请求导致服务器拒绝还是单纯我这里的网络问题


如果愿意可以手工分拆文件,文件名保持...
阿叉太棒了!!!好良心(bgm38)之前就一直在期待能有这个功能了
#4 - 2014-8-20 08:56
(霍克prpr)
阿叉良心阿叉我们喜欢你!
#5 - 2014-8-20 10:21
(不易相处)
为何用3.X。。。。。我觉得2.7挺好(bgm38)不想更新啊
#5-1 - 2014-8-20 10:24
csslayer
co-installable.
#6 - 2014-8-20 11:32
(hhh汝视视汝)
转校!
#7 - 2014-8-20 12:22
(2011 冬、始)
早就人肉导出好的(bgm38)
#7-1 - 2014-8-20 18:17
Chlorine_H2
怎么人肉(bgm28)
#7-2 - 2014-8-21 00:20
ks.magi
Chlorine_H2 说: 怎么人肉
参加 http://dazzyd.org/list
#7-3 - 2014-8-21 08:23
Chlorine_H2
yukixz 说: 参加 http://dazzyd.org/list
辛苦,看起来很棒
#8 - 2014-8-20 12:44
哦好及时啊!正想求个导出
没仔细看lz竟然是阿叉(bgm38)
#9 - 2014-8-20 13:11
我居然...不会用,安装python环境后点开tenkou.py然后一闪而过啥都没(bgm74)
#9-1 - 2014-8-21 09:09
SuNNy
既然有人不会用,那我也写个小教程吧。
开始→cmd【←这个总知道吧
进入你放tenkou.py的磁盘
比如我放在了E盘,输入E:
接下来输入:E:\Python\tenkou.py -u treehole(你的ID) -p E:\Python\bgm_backup
当然E:\Python下必须有个bgm_backup文件夹
这样就能备份出来了。
其他指令阿叉上面给出了,同理。
#9-2 - 2014-8-21 11:37
树洞酱
SuNNy 说: 既然有人不会用,那我也写个小教程吧。
开始→cmd【←这个总知道吧
进入你放tenkou.py的磁盘
比如我放在了E盘,输入E:
接下来输入:E:Pythontenkou.py -u treeho...
结合32的方法,突然明白上面的怎么用了,感谢阿叉叉和32www!
#9-3 - 2014-8-21 11:53
SuNNy
树洞酱 说: 结合32的方法,突然明白上面的怎么用了,感谢阿叉叉和32www!
怎么好像猜到你是谁了(bgm38)
#9-4 - 2014-8-21 12:02
树洞酱
SuNNy 说: 怎么好像猜到你是谁了
我是树洞酱千千万万个人格之一(bgm39)
#10 - 2014-8-20 13:49
(理想时薪114514)
(bgm106)
#11 - 2014-8-20 16:04
(すべての夢が終わるまで)
本地化bgm(bgm38)
#12 - 2014-8-20 16:36
(Q, Σ, Γ, δ, q0, Z0, F)
哇,阿叉教我写爬虫吧!
#13 - 2014-8-21 01:37
(啊呀出門忘帶元氣塊了)
(bgm109)
#14 - 2014-8-21 21:51
#15 - 2015-5-10 09:19
(NEET 3)
兹瓷
#16 - 2015-5-16 04:06
请教,假如某动漫比如火影我看到了300集还没看完 能导出来吗
#17 - 2015-5-17 23:10
(烦透了,三次元)
好棒!(bgm24)我也要学python
#18 - 2015-5-18 03:34
(刚种的树不要整天摸!)
我一直以为导出是都市传说,原来真的有(bgm38)
太厉害了(bgm38)(bgm38)(bgm38)
#19 - 2017-5-31 04:47
(赤受咸青)
请教下,貌似是出错误了。。?

D:\>D:\Python\tenkou.py -u treehole -p D:\Python\bgm_backup
Traceback (most recent call last):
  File "D:\Python\tenkou.py", line 7, in <module>
    from bs4 import BeautifulSoup
  File "D:\Python\bs4\__init__.py", line 30, in <module>
    from .builder import builder_registry, ParserRejectedMarkup
  File "D:\Python\bs4\builder\__init__.py", line 308, in <module>
    from . import _htmlparser
  File "D:\Python\bs4\builder\_htmlparser.py", line 7, in <module>
    from html.parser import (
ImportError: cannot import name 'HTMLParseError'
#19-1 - 2017-5-31 04:55
文学少女的⑨
查了下好像是3.5不支持beautifulsoup4,我试试3.4看看。。
#19-2 - 2017-5-31 05:03
文学少女的⑨
文学少女的⑨ 说: 查了下好像是3.5不支持beautifulsoup4,我试试3.4看看。。
3.41就可以了,多谢LZ~
#20 - 2020-8-27 00:24
(‮rettiw‭t)
删除了回复
#21 - 2021-3-15 16:01
(ACG猫舌,喜欢补已经凉了的企划,不喜欢趁热。)
mark,虽然看不懂(bgm38)