Python3爬取某API数据并存储到MySQL数据库

最近空闲时间想做个APP玩儿,奈何现在大部分开放API接口的网站普通会员每日请求次数都有限制,不能尽兴的嗨玩儿,所以就想学习用Python爬点数据玩儿玩儿,因此就有了这篇文章,仅供参考!

本文所用环境
  • MacBook Pro
  • PyCharm
  • Python3.6
以聚合数据历史上的今天API为例:

首先你要注册账号申请开放API,获取key,话说最近聚合有活动最近注册用户,可以免费体验15天的钻石会员(试了下钻石会员可以申请多个API,而且请求此时无限制)。
直接上代码吧:

  • 需要用到的库
1
2
3
4
import requests
import json
import pymysql
import time
  • 定义一个getJson函数用来解析返回的数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def getjson(dateStr):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36'
}
url='http://v.juhe.cn/todayOnhistory/queryEvent.php'
params={
'key':'126ceff7c1d485dc515ea42b17c39ef7',//申请的key
'date':dateStr,
}
response=requests.get(url=url,params=params,headers=headers)
html=response.text
decodejson=json.loads(html)
# print(decodejson)
return decodejson
  • 连接数据库、获取数据并插入到数据库中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
def IntoMysql(results):
mysql_host = 'localhost'
mysql_db = 'history_db'
mysql_user = 'root'
mysql_password = 'xxxxx'
mysql_port = 3306
db = pymysql.connect(host=mysql_host, port=mysql_port, user=mysql_user, password=mysql_password, db=mysql_db,charset='utf8') # 连接数据库编码注意是utf8,不然中文结果输出会乱码
cursor = db.cursor()
try:
for result in list(results):
params = str(result)
resultParams = eval(params)
e_id = resultParams.get('e_id')
# print(resultParams.get('e_id'))
eidArray.append(e_id)
h_day = resultParams.get('day')
# print(resultParams.get('day'))
h_date = resultParams.get('date')
# print(resultParams.get('date'))
h_title = resultParams.get('title')
# print(resultParams.get('title'))
sql = "INSERT INTO history_db.history(e_id,h_day,h_date,h_title) VALUES ('%s','%s','%s','%s')" % (e_id,h_day,h_date,h_title)
cursor.execute(sql)
db.commit()
except:
pass
db.close()
  • 程序运行调用
1
2
3
4
5
6
7
if __name__ == '__main__':
#获取当前日期
localtime = time.localtime(time.time())
timeStr = '%d/%d' % (localtime.tm_mon,localtime.tm_mday)
decodejson = getjson(timeStr)
result = decodejson.get('result')
IntoMysql(result)

至此简单的数据爬取过程完成,Good Luck !

-------------本文结束感谢您的阅读-------------
枫林飘雪 wechat
欢迎您扫一扫上面的微信订阅号,订阅我的博客!
坚持技术分享,您的支持将鼓励我继续创作!