Python脚本:自动访问API并保存数据
Python脚本:自动访问API并保存数据
本脚本演示如何使用Python定期访问指定API,并将其响应内容保存到文本文件中。
目标网站: https://api.vvhan.com/api/ian
脚本功能:
- 每隔5秒访问一次API
- 提取响应内容
- 将提取的内容按行写入文本文件
- 包含错误处理和延迟机制,避免对服务器造成过大压力
代码示例:
import requests
import time
url = 'https://api.vvhan.com/api/ian'
repeat_times = 500
interval = 5 # 秒
filename = 'output.txt'
with open(filename, 'w', encoding='utf-8') as f:
for i in range(repeat_times):
response = requests.get(url)
if response.status_code == 200:
content = response.text.strip()
f.write(content + '\n')
print(content)
else:
print('Error:', response.status_code)
time.sleep(interval)
代码解释:
- 导入模块:
import requests用于发送HTTP请求,import time用于控制脚本执行时间。 - 设置参数:
url: API地址repeat_times: 循环次数interval: 每次循环之间的时间间隔filename: 输出文本文件名称
- 打开文件: 使用
with open(filename, 'w', encoding='utf-8') as f:打开文件,以写入模式('w') 打开,并指定编码为UTF-8。 - 循环访问API:
- 使用
for i in range(repeat_times):循环执行以下操作repeat_times次。 response = requests.get(url)发送HTTP GET请求到API,并将响应存储在response变量中。if response.status_code == 200:如果响应状态码为200,表示请求成功。content = response.text.strip()提取响应内容,并去除首尾空白字符。f.write(content + '\n')将提取的内容写入文件,并添加换行符。print(content)打印提取的内容到控制台。
else:如果响应状态码不为200,表示请求失败。print('Error:', response.status_code)打印错误信息到控制台。
- 使用
- 延迟:
time.sleep(interval)暂停interval秒,等待下次循环。
注意:
- 请注意API的使用条款,避免过度访问导致服务器压力过大。
- 可以根据需要调整循环次数和时间间隔。
- 脚本运行后,将在当前目录生成名为
output.txt的文本文件,其中包含所有提取到的内容。
示例:
运行脚本后,output.txt文件将包含以下内容:
{“data”: […]} // API响应内容
{“data”: […]}
{“data”: […]}
…
更多信息:
requests库文档:https://requests.readthedocs.io/en/master/time库文档:https://docs.python.org/3/library/time.html
原文地址: https://www.cveoy.top/t/topic/lR6c 著作权归作者所有。请勿转载和采集!