利用python写一个api接口
时间: 2023-10-16 18:08:27 浏览: 212
以下是一个简单的Python Flask API接口示例:
```
from flask import Flask, jsonify, request
app = Flask(__name__)
# 创建一个简单的路由
@app.route('/hello', methods=['GET'])
def hello():
return "Hello, World!"
# 创建一个返回JSON数据的路由
@app.route('/user', methods=['GET'])
def get_user():
user = {
'id': 1,
'name': 'John',
'age': 30
}
return jsonify(user)
# 创建一个接受POST请求的路由
@app.route('/user', methods=['POST'])
def add_user():
user = request.get_json()
# 在这里可以将用户添加到数据库中
return jsonify(user)
if __name__ == '__main__':
app.run(debug=True)
```
可以使用Postman等工具测试API接口。
相关问题
写一个利用B站开放的API接口爬取所有视频链接的python爬虫
好的,下面是一个使用B站开放API接口获取所有视频链接的Python爬虫示例:
```python
import requests
# 构造API接口的URL
url = 'https://api.bilibili.com/x/web-interface/archive/stat?aid={aid}'
# 获取所有视频的AID(视频ID)
aid_list = []
for i in range(1, 101): # 假设一共有100页
page_url = f'https://api.bilibili.com/x/web-interface/newlist?rid=0&type=0&pn={i}&ps=20'
response = requests.get(page_url)
data = response.json().get('data')
if not data:
break
for item in data['archives']:
aid_list.append(item['aid'])
# 获取所有视频的链接
video_links = []
for aid in aid_list:
response = requests.get(url.format(aid=aid))
data = response.json().get('data')
video_links.append(f'https://www.bilibili.com/video/av{aid}')
# 输出所有视频链接
for link in video_links:
print(link)
```
这个爬虫通过B站开放的API接口获取所有视频的AID(视频ID),然后根据AID构造视频链接。最后输出所有视频链接。请注意,为了避免给B站服务器造成过大的压力,代码中只获取了前100页视频。如果需要获取更多视频,请自行修改代码。同时,B站API接口也有限制,请遵守相关规定。
python写调用API接口并把数据入mysql数据库
在Python中,你可以通过结合requests库来调用API获取数据,然后利用pymysql库将这些数据插入MySQL数据库。以下是一个简单的步骤说明:
1. **安装所需的库**:
- 安装`requests`:如果你还没有安装,可以使用`pip install requests`命令。
- 安装`pymysql`:如果需要连接MySQL,使用`pip install pymysql`。
2. **编写代码**:
```python
import requests
import pymysql
# API接口的URL
api_url = 'https://example.com/api/data'
# 创建数据库连接
db = pymysql.connect(host='localhost', user='your_username', password='your_password', database='your_database')
# 创建游标对象
cursor = db.cursor()
try:
# 发送GET请求获取数据
response = requests.get(api_url)
if response.status_code == 200: # 检查请求是否成功
data = response.json() # 假设返回的数据是JSON格式
# 插入数据到表中,假设表名为your_table
for item in data:
sql = f"INSERT INTO your_table (column1, column2) VALUES (%s, %s)"
cursor.execute(sql, (item['column1'], item['column2'])) # 根据实际数据结构替换字段名
# 提交事务
db.commit()
print("数据插入成功")
else:
print(f"请求失败,状态码:{response.status_code}")
except Exception as e:
# 处理错误
print(f"发生异常:{str(e)}")
finally:
# 关闭游标和数据库连接
cursor.close()
db.close()
```
记得替换上述代码中的数据库连接信息、API URL以及表名和字段名等。
阅读全文