Python:Sqlite3+Navicat数据库练习(某诗词API接口)
2019-03-06 22:50
246 查看
版权声明:随便整,没版权 https://blog.csdn.net/bosslay/article/details/88261841
新手练手,大牛勿喷,欢迎交流
验证接口出了点问题,返回的数据并不是按搜索的人名,发博时接口已经502,后续会跟进。
import sqlite3##调用数据库 import requests#调用请求库 import os#调用文件管理库 import time##调用时间管理库 import xlwt##调用制表库 print('☢☣☢☣☢☣☢☣☢☣☢☣☢☣ ✘CAUTION✘ ☣☢☢☣☣☢☣☢☣☢☣☣☢☣☢☣')###装饰 print('☠☛每次执行爬虫需要更改数据库表名,按照数字往下排列,以防覆盖原有数据库并且报错!☚☠') base_file = 'Ancient_poetry'#建立初始文件夹 if not os.path.exists(base_file):#判断是否原来就存在初始文件夹 os.mkdir(base_file)##如无,则建立 workbook = xlwt.Workbook(encoding='utf-8')#建立工作簿 sheet = workbook.add_sheet('Ancient_poetry')##创建列表头 count = 0 ##声明一个变量为0 以便在后续写入表格时能用到这个变量 sheet.write(0,0,'诗词作者')##写入表头 sheet.write(0,1,'诗词名称')##写入表头 sheet.write(0,2,'诗词内容')##写入表头 db = sqlite3.connect('Poetry.db')##首先连接数据库!! cursor = db.cursor()###启动游标!! create_sql = "CREATE TABLE IF NOT EXISTS Ancient_poetry05 (ID INTEGER PRIMARY KEY,诗词名称 VARCHAR (20),诗词内容 VARCHAR (200),诗词作者 VARCHAR (20))"###创建数据表的sql语句 cursor.execute(create_sql)#执行sql语句!! poetry_author = input('请选择您要查询的诗词作家:')#获取输入的作家名称 headers = { 'User_Agent':'ozilla/5.0 (compatible; WOW64; MSIE 10.0; Windows NT 6.2)' }###请求头(非真实) print('唤醒爬虫...')##你懂得 url = f'https://api.apiopen.top/likePoetry?name={poetry_author}'#将作家名称嵌入到url地址当中 response = requests.get(url,headers=headers).json()#请求返回json格式的数据 results = response.get('result')##调用get函数提取字典里key为result的value,得到一个列表 print(f"嗅探到'{poetry_author}'的诗词共{len(results)}条,开始解析数据..") for idx,poetry in enumerate(results):#####枚举### p_title = poetry['title']###诗词名称 time.sleep(1)###设置间隔函数1秒 p_content = poetry['content']###诗词内容 p_authors = poetry['authors']####诗词作者 print('▁▂▃▄▅▆▇▉█')###一把大刀,稍安勿躁 print(f'正在将第{idx}首诗词《{p_title}》写入数据库..')##输出语句 insert_sql = f"INSERT INTO Ancient_poetry05(ID,诗词名称,诗词内容,诗词作者) VALUES({idx},'{p_title}','{p_content}','{p_authors}')"###向数据库插入数据,sql语句 cursor.execute(insert_sql)##执行插入数据的sql语句 db.commit()##提交执行 count += 1### 将这个变量应用在写入列表时的‘行’当中 print(f'正在写入《{p_title}》内容到表格...')##输出语句 sheet.write(count,0,p_authors)#写入诗词作者 sheet.write(count,1,p_title)#写入诗词名称 sheet.write(count,2,p_content)#写入内容 workbook.save(f'{base_file}/{poetry_author}.xls')##保存表格到指定路径 print('数据保存完成!') cursor.close()###关闭游标 db.close()###关闭数据库,这个就不解释了吧
ps:
##end()
图片是截取的之前的数据库
同时写入了EXEL表格,仅供练习!
相关文章推荐
- 入门级Python 正则表达式与Sqlite3数据库练习 某事百科热门页面爬虫
- Python SQLite3数据库日期与时间常见函数用法分析
- 使用python控制数据库(SQLite)
- Python SQLite3数据库操作类分享
- Python json数据转换为Sqlite3 数据库表
- python3之sqlite3创建数据库与基础用法详解
- python连接sqlite(mysql)数据库以及sqlite数据库基础操作
- Python入门面向对象练习:简单封装一个猜诗词小游戏程序
- python 数据库操作 SQLite、MySQL 摘录
- 笨办法学 Python · 续 练习 44:使用 Python 的数据库 API
- python数据库编程 操作Sqlite
- Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
- Python-数据库SQLite 游标
- python数据库编程_sqlite
- python数据库操作——sqlite3模块
- Python标准库14 数据库 (sqlite3)
- 3.20 学数据库 Navicat软件和 数据库操作练习
- Python 搞搞数据库 简单的SQLite操作
- Python标准库14 数据库 (sqlite3)
- python 学习笔记6(数据库 sqlite)