目录
1.API接口请求
2.创建成新的QQ插件
Python实现快递查询功能。Python爬虫一直是一样好东西!只要想就可以爬取自己想要的对象!本次,将使用Python3.9即requests库API请求,制作成QQ机器人插件。
1.API接口请求
我使用的是API接口请求json数据,这样简单又快捷!(确实就是懒)
API https://v2.alapi.cn/api/kd
请求参数: token=[网站注册用户获取] number=[快递单号]
注册网站为:ALAPI 接下来看代码
import requests
message = input("单号:")
url = "https://v2.alapi.cn/api/kd" # 请求地址
data = {
"token":"", # 填写自己token
"number":message # 获取单号
}
r = requests.post(url=url, data=data) # post请求
#print(r.json())
json = r.json() # 获取json
"""
处理数据输出
"""
print("内容可能会使您隐私暴露请谨慎使用!")
print(json['code'])
json_data = json['data']
print(json_data['com'])
info = json_data['info']
for i in info:
print(i['time'])
print(i['content'], 'n')
就这么点代码,谁都能看懂吧!很简单的!写入自己的token值就行了
2.创建成新的QQ插件
爬虫部分有了,那么插件部分就简单了!获取用户输入请求到api在返回数据给用户。基本就这样
from nonebot import on_keyword, on_command
from nonebot.typing import T_State
from nonebot.adapters.cqhttp import Message, Bot, Event
from nonebot.adapters.cqhttp.message import MessageSegment
import requests
from nonebot.permission import *
from nonebot.rule import to_me
kuaidi = on_keyword({'/快递查询'}, to_me())
@kuaidi.got('kd', prompt='请回复你要查询的快递单号(部分快递无法查询):')
async def get_kuaidi(bot: Bot, state: T_State):
kd = state['kd']
if kd == '':
await kuaidi.send("你连快递单号都不会发吗?你这个废物!")
else:
"""
api爬取返回数据
"""
try:
url = "https://v2.alapi.cn/api/kd" # Url
"""
|Post Date
"""
data = {
"token":"", # 授权token
"number":kd # 单号
}
r = requests.post(url=url, data=data) # 发送post请求
#print(r.json())
json = r.json()
await kuaidi.send("内容可能会使您隐私暴露请谨慎使用!")
#(json['code'])
"""
处理json await xxx.send()发送出去
"""
json_data = json['data']
await kuaidi.send(f"{json_data['com']}")
info = json_data['info']
for i in info:
await kuaidi.send(f"{i['time']}n{i['content']}" + 'n')
except: # 异常处理
await kuaidi.send("发现错误!请联系PYmili修复!")
部分快递会查找不出来,暂时未找到解决方案。大家可以在群:706128290共同学习讨论



