--- template: overrides/blogs.html tags: - app - python --- # 有趣的 API 介绍 !!! info 作者:Echo,发布于 2021-11-26,阅读时间:约6分钟,微信公众号文章链接:[:fontawesome-solid-link:](https://mp.weixin.qq.com/s/VBPCGnh5IAB39E_yRwHGDA) ## 1 前言 朋友们,又到了美好的周末,这周过的开心吗?被夸了吗?想好做什么来欢度周末了吗?今天让我们从这些问题开始,聊聊数据科学带给我们的浪漫与沙雕的快乐。
## 2 两个沙雕又有趣的API 也许工作/学习了一周,现在的你很疲惫;也许入冬了,寒冷且要上班让人变得不开心;也许坐久了又吃多了,毕竟每天都是cheating day,肩膀的酸痛和沉甸甸的脂肪让人有点心累。那么给大家介绍第一个沙雕API,可以自动随机生成土味情话逗你开心。 话不多说先上结果。
土味情话示例
每逢周末都要思考干点什么好,不知道你有没有同样的困扰。如果有的话,下面这个boredAPI也许可以帮到你。它API如其名,每当你无聊的时候,它可以随机生成一些活动供你参考。包括活动内容,种类,参与人数,价格昂贵程度,链接(如果有的话)和可行性。比如我早上无聊随机生成了一下,现在正在做它推荐给我的第五件事 :)
活动推荐示例
当然,你还可以按自己的心意修改它。下面是boredAPI的活动参数的参考。这里也附上boredAPI的官方[参考文档](https://www.boredapi.com/documentation#endpoints-random)。你可以限定自己喜欢的种类,参与人数,价格昂贵程度和可行性程度等,让它更加符合你的需求。比如哪天我奋发图强了,限定只看education类的活动,示例如下。我们惊人地发现,学习类活动真的是几乎零成本,随时上手,并且一人可行。再也找不到不学习的理由了……
学习类活动示例
活动参数参考
## 3 代码实现 API(Application Programming Interface)是应用程序接口。让我们不用重复造轮子,可以只使用简单的几行代码实现各种有趣的功能。在以下demo中,我们分别调用了两个API来随机生成土味情话和活动推荐。你要做的就是重新run一遍。代码如下: ```python import requests import json import random import time import pandas as pd user_agents = [ 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60', 'Opera/8.0 (Windows NT 5.1; U; en)', 'Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.50', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.50', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0', 'Mozilla/5.0 (X11; U; Linux x86_64; zh-CN; rv:1.9.2.10) Gecko/20100922 Ubuntu/10.10 (maverick) Firefox/3.6.10', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.57.2 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36', 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11', 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 ', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36', "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)" ] def getHeaders(): user_agent = user_agents[random.randint(0, len(user_agents)-1)] headers = { 'User-Agent': user_agent } return headers # 累了,听听今日份彩虹屁 sweet_words = [] url1 = 'https://chp.shadiao.app/api.php' for i in range(5): time.sleep(random.uniform(0.1,1)) response1 = requests.get(url1, headers=getHeaders()) sweet_words.append(response1.text) truth = pd.DataFrame(sweet_words,columns=['别看了说的就是你']) truth # 看看周末干点什么好呢 todo = [] #随机生成活动 url2 = 'http://www.boredapi.com/api/activity/' #随机生成指定类型活动,下面的示例为教育类。 # url2 = 'http://www.boredapi.com/api/activity?type=education' for i in range(5): time.sleep(random.uniform(0.1,1)) response2 = requests.get(url2, headers=getHeaders()) item = json.loads(response2.text) todo.append((item["activity"],item["type"],item["participants"],item["price"],item["link"],item["accessibility"])) todo_list = pd.DataFrame(todo,columns=['事项','类别','参与人数','价格(0-1)','链接','可行性(0-1)']) todo_list['可行性(0-1)'] = 1-todo_list['可行性(0-1)'] todo_list ``` ## 4 小结 今天介绍的两个API都非常容易上手,因为它不需要网络令牌或API密钥,没有注册时隐私泄露和广告的烦恼。只要你有Python的环境,无脑运行一下code,可以每次都获得不一样的信息哦。希望能给大家带来一点笑容和欢乐。那么以上,祝大家周末愉快!