HibiAPI服务化部署
本文最后更新于 544 天前,其中的信息可能已经有所发展或是发生改变。

因为搭建QQ机器人的过程中想要自动获取Pixiv的图片,所以就找到了HibiAPI这个项目。看似不用自己写爬虫了,但是为了把它部署到服务器上还是花了我不少功夫,写一篇博客记录一下其中的心酸( 。

介绍

HibiAPI提供多种网站公开内容的 API 集合, 它们包括:

  • Pixiv 的图片和小说相关信息获取和搜索
  • Bilibili 的视频/番剧等信息获取和搜索
  • 网易云音乐的音乐/MV 等信息获取和搜索
  • 百度贴吧的帖子内容的获取
  • 爱壁纸的横版和竖版壁纸获取
  • ……

其他更详细的介绍就请移步到Github,我部署主要是为了实现获取Pixiv的图片和使用SauceNAO搜图。

步骤

HibiAPI官方的文档上介绍了两种安装方法,我这边使用的是下载源码自行安装的方式。

安装Virtualenv

// 首先检查一下系统上的python版本
sudo python3 --version

// 如果版本低于3.8或者直接提示没有该命令,那就安装python3.8
sudo apt install python3.8

// 然后安装virtualenv
sudo pip3 install virtualenv

// 安装完成之后创建一个目录用来存放要用到的数据
sudo mkdir /etc/hibiapi
cd /etc/hibiapi

// 然后创建一个虚拟环境
sudo virtualenv --no-site-packages hibiapi_env

// 然后指定虚拟环境的python版本
virtualenv hibiapi_env --python=python3.8

安装HibiAPI

移动到/etc/hibiapi之后,使用git克隆仓库

sudo git clone https://github.com/mixmoe/HibiAPI.git

这一步完成之后目录里面应该有两个文件夹HibiAPIhibiapi_env,然后开始安装HibiAPI

// 登录root账户,不然后面安装可能会出现奇怪的问题
su

// 之后进入虚拟环境
source hibiapi_env/bin/activate

// 在命令行的最前面应该会出现 (hibiapi_env)
// 然后检查一下python版本和pip版本
python --version

pip --version

// 上面两个命令的结果应该都会出现python3.8的字样
// 开始安装HIbiAPI
cd HibiAPI

pip install .

// 安装完成之后就能启动了
python -m hibiapi

第一次启动HibiAPI会直接退出,然后在当前目录生成配置文件,此时当前目录里面应该会有configs HibiAPI hibiapi_env,这三个文件夹,然后开始编辑配置文件

vi configs/

大家可以挨个打开看看里面有些什么东西可以改,其中里面的general.yml包含了网页端口啥的,可以仔细看看,我这边就讲一下Pixiv的配置和SauceNAO的配置。

这些网站的配置比较复杂,建议先只修改general.yml,部署完成之后再来修改其他配置文件

Pixiv配置

pixiv配置的难点主要是在得到pixiv的账户密钥上,具体的做法可以看这个Issue,我这里介绍一下我的做法。

这个方法要求要有一台搭了梯子的服务器,然后把电脑上的梯子切换到这台服务器上。作者给出的两个方法都是在自己电脑上获取的,但是我测试发现,如果挂了梯子执行脚本之后会有SSL错误,但是不挂梯子又打开不了Pixiv的登录界面;直接把文件放到服务器上执行,服务器又没有图形界面,所以我结合了一下这两种思路。

首先下载我改过的文件(原文件来自这个地方

下载,解压,得到py文件,上传至服务器,然后在服务器上执行

python pixiv_auth.py login

它应该会直接给出一个链接

  • 复制这个链接,在浏览器内打开这个链接(记得连上运行脚本的这台服务器的梯子)
  • 打开浏览器的调试工具,点击Network,勾选Preserve log,在下面的Filter里面输入callback?
  • 登录Pixiv账号
  • 登录之后应该会停留在一个空白的界面上,调试工具里面会出现一行满足过滤器要求的项目(其链接格式应该是https://app-api.pixiv.net/web/v1/users/auth/pixiv/callback?state=...&code=...),选中这个项目,复制code=后面的部分
  • 粘贴到服务器终端上,回车

第四 五步一定要快,不然code会失效,需要重新操作一次。如果没什么问题的话应该会显示出access_token refresh_token expires_in三个值,复制refresh_token,记住expires_in,修改pixiv.yml的相应内容,配置就完成了。

SauceNAO配置

首先当然是打开SauceNAO的网站了,之后点击底部的Account,登录或者注册账号,登录之后点击最左侧的api,复制页面api key:后面的一长串内容,粘贴到sauce.yml文件内的api-key后面(下面的keys应该是均衡负载用的,只有一个key的话不管就行),这样配置就完成了。

服务化部署HibiAPI

首先测试一下HibiAPI能不能正常运行了(还是处于虚拟环境和root账户之下)

python -m hibiapi

如果没什么问题的话就按下ctrl+c退出,然后创建service

// 退出虚拟环境
deactivate

cd /etc/systemd/system

vi hibiapi.service

然后在里面输入以下内容

[Unit]
Description=HibiAPI Service
After=syslog.target

[Service]
User=root
Group=root
WorkingDirectory=/etc/hibiapi/
Environment=PATH=/etc/hibiapi/hibiapi_env/bin
ExecStart=/bin/bash -c 'cd /etc/hibiapi && source hibiapi_env/bin/activate && python -m hibiapi'

[Install]
WantedBy=multi-user.target

如果你的文件存放位置和名字跟我上面说的一毛一样,那么直接保存就行了,如果不是的话就看着改一下上面的内容。

再之后是启动service

systemctl start hibiapi

// 查看一下是否启动成功了
systemctl status hibiapi

// 没什么问题的话就设置开机自启
systemctl enable hibiapi

至此,HibiAPI服务化部署就已经差不多了,想更完善一点的朋友可以再弄一下用Nginx反向代理HibiAPI,然后加上SSL证书(SNI),这部分内容可以看我的这篇文章

参考内容

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇