利用腾讯云函数做蓝奏云解析API

利用腾讯云函数做蓝奏云解析API

前言

忽然在网上看到网友说tenapi的蓝奏云解析不能用了,恰巧又在B站上看到某up主的相关文章,一时起意就用up主的代码稍加更改,改造了个能在腾讯云函数跑起来的版本。
博主原文链接:https://www.bilibili.com/read/cv12429600/
云函数压缩包资源:待会儿上传

阅读指南

Tips :如果你只是想搭建一个类似接口而不在乎他的原理,那么这段文字(废话)可以跳过了,后面有你想要的详细步骤,快去看吧

本文用到的编程知识:python,flask
本次搭建需要的资源你:腾讯云函数(快速flask示例)

代码

话不多说先看看代码吧

import requests
import re
import json
from flask import Flask,request,jsonify

class lanzouyun:
    # 博主链接:https://www.bilibili.com/read/cv12429600/
   def __init__(self):
       self.headers = {
           'accept-language': 'zh-CN',
           'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36',
           'Referer': 'https://www.lanzoui.com/'
       }

   def lzy(self, url):
       html = requests.get(url=url, headers=self.headers).content.decode('utf-8')
       # 文件信息
       name = str(re.compile("<title>.*?- 蓝奏云").findall(html)).replace("['<title>","").replace(" - 蓝奏云']","")
       author = str(re.compile("分享用户:</span><font>.*?</font>").findall(html)).replace("['分享用户:</span><font>","").replace("</font>']","")
       time = str(re.compile("上传时间:</span>.*?<br>").findall(html)).replace("['上传时间:</span>","").replace("<br>']","")
       size = str(re.compile("文件大小:</span>.*?<br>").findall(html)).replace("['文件大小:</span>","").replace("<br>']","")
       # 获取链接
       fn = str(re.compile('src="(/fn?[^"]{10,})"', re.S).findall(html)).replace("['/", '').replace("']", '')
       html = requests.get(url="https://www.lanzoui.com/" + fn, headers=self.headers).content.decode('utf-8')
       sign = str(re.compile('[0-9a-zA-Z_]{70,}_c_c', re.S).findall(html)).replace("['", '').replace("']", '')
       action = re.search("action':'(.*?)'", html).group(1)
       html = requests.post(url="https://www.lanzoui.com/" + re.search("url : '/(.+?)'", html).group(1),
                            data={'action': action, 'sign': sign, 'ves': '1'}, headers={
               'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36',
               'Referer': 'https://www.lanzous.com/' + fn
           })
       url = requests.get(json.loads(html.text)['dom'] + '/file/' + json.loads(html.text)['url'],
                          allow_redirects=False, headers=self.headers)
       return name,author,time,size,url.next.url

app = Flask(__name__)

@app.route('/')
def index():
    source_url = request.args.get('url')
    if not source_url:
        returnJson = {
            "code": 201,
            "msg": "请输入需要解析的蓝奏链接"
        }
        return jsonify(returnJson)
    lzy = lanzouyun()
    name,author,time,size,url = lzy.lzy(source_url)
    returnJson = {
        "code": 200,
        "data": {
            "name": name,
            "author": author,
            "time": time,
            "size": size,
            "url": url
        }
    }
    return jsonify(returnJson)

if __name__ == "__main__":
   app.run(host='0.0.0.0',port=9000)

搭建指南

第一步

你需要一个腾讯云账户,然后进入它的云函数界面选择:函数服务–》新建地址:https://console.cloud.tencent.com/scf/index

第二步

选择模板创建,点第二个Flask框架模板,继续点下一步
在这里插入图片描述

第三步

什么都不需要管,直接滑到最后,同意协议然后点完成
在这里插入图片描述

第四步

在这里插入图片描述
进入到图示界面,这时候函数准备好了,需要你上传代码部署了,有两种方式先说第一种
复制上面的代码覆盖掉原来的app.py文件里的内容,之后点开终端–》新终端,打开一个终端,在其中输入python3 -m pip install requests回车,安装requests库依赖,再点击部署就完成了
第二种方式,下载作者提供的云函数zip包,选择本地上传zip包,上传好后,点击部署即可!在这里插入图片描述

恭喜你完成部署了

API使用

api调用方式为

函数地址?url=蓝奏云地址
比如说博主部署完云函数地址是https://service-ps0ygkto-1523487456.gz.apigw.tencentcs.com/release/
想要解析的蓝奏云地址为:https://yoyodadada.lanzouw.com/i3dy70h
那么调用地址是:https://service-ps0ygkto-1523487456.gz.apigw.tencentcs.com/release/?url=https://yoyodadada.lanzouw.com/i3dy70h
嗯你的云函数地址在,页面下滑就能看到喽
在这里插入图片描述

API返回

接下来说一下接口的返回
返回数据均为json格式,

成功返回示例

{
  "code": 200,
  "data": {
    "name": "文件名",
    "author": "分享的作者",
    "time": "上传日期",
    "size": "文件大小",
    "url": "文件直链下载地址"
  }
}

失败返回示例(不给url的情况)

{
	"code": 201,
	"msg": "请输入需要解析的蓝奏链接"
}

结束语

到此结束了,辛苦码字不易,如果文章对你有所帮助的话希望能顺手点赞收藏哦,
如果有什么问题也可以评论或者私信我,
最后,感谢你能看到这儿,你的鼓励我收到了也会记在心里的!

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盧瞳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值