PHP/Python简单实现历史上的今天
在网上我们经常会看到各种各样的历史上的今天,所以研究了一下,发现百度百科提供了历史上的今天,如下图:
那么,可不可以把这个页面的数据为我们所用呢?所以使用浏览器的调试工具,发现这个页面请求了一个json文件,如图:
地址是 https://baike.baidu.com/cms/home/eventsOnHistory/06.json 其中06就是月份,而json的内容则是整个6月所有的历史上的今天的数据,因此,我们只需要生成当前的月份,然后通过curl获取数据,然后再显示出来。
原理很简单,下面用PHP和Python 简单实现。
PHP版
<?php // 获得当前月份和日期 $month=date('m',time()); $day=date('d',time()); // 组成链接然后用curl获取数据后json解码下转成文字 $url="https://baike.baidu.com/cms/home/eventsOnHistory/".$month.".json"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $data=curl_exec($ch); curl_close($ch); $json = json_decode($data,true); // 显示内容 echo '今天是'.date('m/d',time()).'-历史上的今天<br><br>'; // 这里之所以是<=14是因为百度这个历史上的今天只提供15条 for ($x=0; $x<=14; $x++) { echo $json[$month][$month.$day][$x]['year'].'年 '; echo $json[$month][$month.$day][$x]['title'].'<br>'; }
最后打印出来效果如图(Demo中的日期会比当前时间晚一天是因为本站服务器在美国,实际时间是服务器时间):
Demo地址: https://www.qingwei.tech/demo/history.php
当然这里没有对内容进行任何的修饰,可以根据自己需要进行修饰。
Python版
ps:本站所有Python如无特殊说明都是Python3
import time import urllib.request import json # 引入time urllib json 模块 # 格式化时间获得月份和日期 month = time.strftime("%m", time.localtime()) day = time.strftime("%d", time.localtime()) # 得到数据 url = "https://baike.baidu.com/cms/home/eventsOnHistory/"+month+".json" jsons = urllib.request.urlopen(url) data = json.loads(jsons.read()) # 显示内容 print('今天是'+month+'/'+day+'-历史上的今天:') print() var = 0 while var <= 14: print(data[month][month+day][var]['year']+'年 '+data[month][month+day][var]['title']+'') var += 1
最后打印出来效果如图:
这里是直接在命令行里运行的效果,最终效果也可以自行调整。
希望本文对你有所帮助~
喜欢这篇文章的话可以扫描下方二维码支持我~
文章来自清渭技术小站,转载请注明出处
版权声明:
作者:Kiwi
链接:https://www.qingwei.tech/programe-develops/1014.html
来源:清渭技术小站
文章版权归作者所有,未经允许请勿转载。
爱就爱啦
从百度点进来的,学习学习,呵呵!
sdfas
:rolleyes: :rolleyes: :rolleyes:
藏金网
生活不止眼前的苟且,还有博客和远方的田野!
小学生
借鉴了