Typecho-Plugin-DoubanBoard 发布

请注意,本文编写于 255 天前,最后修改于 7 天前,其中某些信息可能已经过时。

在博客上展示你的豆瓣书单、豆瓣影单 & MORE!

之前我写过一篇文章,介绍如何把豆瓣读书和豆瓣电影的个人收藏数据拉取过来在博客上展示:把豆瓣读书和电影收藏数据扒过来展示。但是写代码的方式对大多数人来说还是不太友好,而且相当于需要自己搭建 API 服务,于是现在我把代码整合一下,并加上了单独插入某一书籍、电影的功能,制作成了这个插件:DoubanBoard。

posterwall
posterwall

介绍

豆瓣书单与豆瓣影单的抓取方法有所不同。书单有接口可以获取,影单没有,只能通过访问豆瓣的网页来解析。具体实现就不多说了。

示例页面见:电影 - 熊猫小A的博客 | 读书 - 熊猫小A的博客

除此之外,也有单独展示某一部电影或书籍的功能,喜欢写影评和书评的博主可能会喜欢这个功能。示例:

单部电影

单部书籍

理论上,也支持剧集,只要按照单部电影的方式添加就好:

食用方式

去 GitHub 上下载或者 Clone 这个 repo:Typecho-Plugin-DoubanBoard将解压后的文件夹改名为 DoubanBoard,上传至站点插件目录启用,并在插件设置面板进行必要的设置。设置项有:

  • 豆瓣 ID:你的豆瓣 ID,一般可以从你的个人主页的 URL 里找到。
  • 每次加载的数量:从速度和节省流量的考虑,书单和影单不会一次全部加载。你可以填写每次加载的数量。不填默认为 10。
  • 缓存过期时间:插件对数据做了本地缓存以提高访问速度,你可以在这里填写缓存过期时间,单位为秒。两次访问时间间隔超过该时间则会重新拉取数据,不填默认 24 小时。注意,不建议设置得过短,否则豆瓣可能判定你的 IP 存在异常流量。
  • 是否加载 JQuery:如果你的主题没有引入则勾选它来引入,否则取消勾选。

注意:要保证 插件目录/cache 这个文件夹可写!

插入书单与影单

想读清单:

<div data-status="wish" class="douban-book-list doubanboard-list"></div>

已读清单:

<div data-status="read" class="douban-book-list doubanboard-list"></div>

在读清单:

<div data-status="reading" class="douban-book-list doubanboard-list"></div>

电影已看清单:

<div id="douban-movie-list" class="doubanboard-list"></div>

注意,在某些 Typecho 版本中你可能需要使用 !!! 来包裹住 HTML 代码。

插入单部电影、书籍

插入单部电影

<div class="douban-single" data-type="movie" data-id="电影 ID" data-rating="你的评分"></div>

其中电影 ID可以在豆瓣电影页面的 URL 中找到。你的评分修改为你自己的评分,10 分制,可带小数。

插入单部书籍

<div class="douban-single" data-type="book" data-id="书籍 ID" data-rating="你的评分"></div>

其中书籍 ID可以在豆瓣书籍页面的 URL 中找到。你的评分修改为你自己的评分,10 分制,可带小数。

注意,在某些 Typecho 版本中你可能需要使用 !!! 来包裹住 HTML 代码。

Enjoy.

如果本项目对你有所帮助,请考虑捐助我 ↓↓↓

添加新评论

已有 53 条评论

大佬 我用了你的插件 我也是Mirage主题 我添加了你的书单代码,但是主页一直是加载中,我不知道什么原因,还有就是哪个加载中三个字能变成黑色吗?然后底色变成白色和我的主题相近,从哪里修改呢?

jerry jerry 回复 @jerry

我的网址是 http://47.100.178.167

PHP需要启用curl扩展。
样式的话你可以修改CSS,或者自己写CSS覆盖掉插件的。

jerry jerry 回复 @熊猫小A

你是说php要开启curl才会加载出书单吗 ? 他这个书单前端代码我只需要把上面这部分粘贴完用!引用起来就可以根据我的豆瓣id拉取出来吗?

PHP需要启用curl扩展。拉取数据是在后端完成的,而不是前端。

jerry jerry 回复 @熊猫小A

非常感谢 记载中的问题已经解决了 如果我的豆瓣已经加入了在读的某些书 我在我博客的独立页面只需要加入 这样的前段代码是不是就自动拉取书籍了呢? 我在豆瓣上已经添加书籍了 但是网页这边提示是 没有了 (。•ˇ‸ˇ•。)

jerry jerry 回复 @熊猫小A

问题已解决 非常感谢!

额,今天发现单部电影空白了,请问咋修复呢OωO
https://www.iasds.cn/blog-187.html

熊猫小A 熊猫小A 回复 @梦魂

用新版试试

梦魂 梦魂 回复 @熊猫小A

OK了,谢谢 ٩(ˊᗜˋ*)و 😘😚😗😙

老铁,我换了服务器,现在 已读这些清单 都可以显示,就是 单独电影 ,放到文章页面里 ,不显示呢

熊猫小A 熊猫小A 回复 @猪蹄君

有错误页面吗

猪蹄君 猪蹄君 回复 @熊猫小A

http://wanghaode.vip/index.php/archives/14/这个页面,插入了 单个电影代码,!!!

!!! 代码就是这个

熊猫小A 熊猫小A 回复 @猪蹄君

我的失误。插件目录下 Action.php 第 23 行改成 curl_setopt($myCurl, CURLOPT_REFERER, 'https://www.douban.com'); 试试。

猪蹄君 猪蹄君 回复 @熊猫小A

老铁,可以了,按照你上面说的修改,OK了,谢谢

博主,请教下,我是小白

我新建里独立页面, 然后再独立页面,输入了,结果不能用,然后我看说用 !!! 来包裹住 HTML 代码,这个怎么用啊,我把 !!! 这样 不行,是不是我用法错了?

熊猫小A 熊猫小A 回复 @猪蹄君

使用英文的 !,另外 !!! 要独占一行。

猪蹄君 猪蹄君 回复 @熊猫小A

博主你好,我设置了,不显示呢, http://wanghaode.vip/index.php/tv.html 帮忙看看呢

熊猫小A 熊猫小A 回复 @猪蹄君

手动删除一下插件目录/cache下的缓存文件吧

猪蹄君 猪蹄君 回复 @熊猫小A

删除了,还是不显示,哎

熊猫小A 熊猫小A 回复 @猪蹄君

你可能被豆瓣针对了

看了下代码,__getMovieRawData 目前抓取的
https://movie.douban.com/people/.../collect 这个页面的数据,就是看过的,
对应的想看的列表 https://movie.douban.com/people/.../wish
和在看的列表 https://movie.douban.com/people/.../do
页面的布局是一样的,猜想套个循环应该可以遍历出来
对 PHP 不太熟,有空我试试

铁皮 铁皮 回复 @铁皮

帮我编辑一下,doubanid贴出来了,谢谢

熊猫小A 熊猫小A 回复 @铁皮

已处理

熊猫小A 熊猫小A 回复 @铁皮

OK

如果电影的页面也能像读书那样分为 看过 想看 再看三部分就更完美了

https://movie.douban.com/mine
https://book.douban.com/mine?icn=index-nav

是因为电影没有直接提供api吗?

熊猫小A 熊猫小A 回复 @铁皮

是的,这部分豆瓣没有提供 API,目前电影页面的信息都是直接扒的网页。

试了下书单能正常显示,影单能显示,但是图片不正常,不知道怎么处理?

熊猫小A 熊猫小A 回复 @铁皮

链接?

铁皮 铁皮 回复 @熊猫小A

我就是在独立页面里包裹了你给的代码
读书没问题,影视似乎就是不显示图片

熊猫小A 熊猫小A 回复 @铁皮

你不发链接我没法帮你查找问题,你的描述对发现问题没有帮助。

铁皮 铁皮 回复 @熊猫小A

https://www.517666.xyz/index.php/movie.html

谢谢你的答复,如果有时间帮我看一些,谢谢

熊猫小A 熊猫小A 回复 @铁皮

是因为豆瓣为自己的图片加上了防盗链。你可以下载使用新版的插件,并且删掉 cache 文件夹下的缓存再试试。

铁皮 铁皮 回复 @熊猫小A

谢谢,问题解决了

把那些代码插入到哪里呢?

熊猫小A 熊猫小A 回复 @涛涛

文章内容里

涛涛 涛涛 回复 @涛涛

好了,是要用!!!裹住代码

为啥用了之后, 一直加载中, 然后页面就卡好久

熊猫小A 熊猫小A 回复 @Ai糖宝

因为在拉取数据。

  1. 1
  2. 2