在天行数据通过API拿到数据并放入数据库

先创建数据库与表,记得设置字符编码为utf8。否则存中文会报错。

create database news DEFAULT CHARACTER  set utf8;

create table tb_newslist (
id int AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100) DEFAULT '',
url VARCHAR(150));

通过requests获得数据,连接数据库,并将数据写入。

import requests
import pymysql


key = '7e45e6dd2okjygf7d2b5e4d7137uyd42'

news_dict = {}
for page in range(1, 11):
    resp = requests.get(f'http://api.tianapi.com/huanbao/index?key={key}&page={page}&num=10')
    for data_dict in resp.json()["newslist"]:
        news_dict[data_dict['title']] = data_dict['url']

conn = pymysql.connect(host='59.119.250.88', port=3306,
                       database='news', charset='utf8',
                       user='root', password='Tianmao.520', autocommit=False)

try:
    # 获取游标
    with conn.cursor() as cursor:
        # 通过游标对数据库操作
        for new in news_dict:
            result = cursor.execute(
                'insert into tb_newslist(title, url) values (%s,%s)', (new, news_dict[new])
            )
            # 操作成功,提交
            conn.commit()
except pymysql.MySQLError as err:
    print(err)
    # 操作失败,回滚
    conn.rollback()
finally:
    # 关闭连接
    conn.close()

根据输入内容查找相关新闻,返回新闻标题与链接。

import pymysql


conn = pymysql.connect(host='59.119.250.88', port=3306,
                       database='news', charset='utf8',
                       user='root', password='Tianmao.520', autocommit=False)

name = input('请输入查询内容')
try:
    # 获取游标
    with conn.cursor() as cursor:
        # 通过游标对数据库操作
        cursor.execute('select title, url from tb_newslist where title like %s',(f'%{name}%'))
        for new in cursor.fetchall():
            print(new)

except pymysql.MySQLError as err:
    print(err)
    
finally:
    # 关闭连接
    conn.close()
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值