日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python爬取历史上的今天数据并展示。

發布時間:2025/5/22 python 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python爬取历史上的今天数据并展示。 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

效果圖:

GitHub項目原碼

第一步肯定是先獲取數據

(現成的接口的要錢啊,就算免費也限量啊。)

百度搜索歷史上的今天
先看一看有沒有現成的數據,

import requestsurl = "https://baike.baidu.com/calendar/" headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"} rep = requests.get(url=url,headers=headers) html = rep.text print(html)

打印完了之后發現啥數據都沒有,除了廣告

下一步就要看看有沒有json接口數據了

使用抓包工具Fiddler 教程在這Fillder下載配置及漢化補丁(Windows版本)

用Fiddler找到了,復制此url(下面有現成的網頁鏈接。)

查看json

數據輕松拿到了,接下來開始獲取

獲取并處理數據

  • 保存json的url

項目結構圖

  • 導入需要的包
    在Scrapy_.py 文件下
import requests import json import time import re
  • 分析url
url = "https://baike.baidu.com/cms/home/eventsOnHistory/08.json?_=1629275894939" # 上面那個08是月份小于10需要前面加0,?=的是時間戳,寫程序要寫活,所以要把他們變為變量 #改進如下: url = "https://baike.baidu.com/cms/home/eventsOnHistory/"+month+".json?_="+str(ts)

爬蟲代碼如下(Scrapy_.py文件下):

import requests import json import time import redef get_Month():lt = time.localtime(time.time())lt = lt[1]if (lt>9):return str(lt)else: # 月份小于10前面加個0,保證格式return "0"+str(lt)def get_Day():return str(time.localtime()[2])def get_ts(): # 獲取時間戳return time.time()def returnApi():Api_list=[]month = get_Month()day = get_Day()ts = get_ts()headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36",}url = "https://baike.baidu.com/cms/home/eventsOnHistory/"+month+".json?_="+str(ts)html = requests.get(url=url,headers=headers).json()for i in range(len(html[month][month+day])): # 這個是上面url月份里具體的天數year = html[month][month+day][i]['year'] # 獲取事件的年title = html[month][month+day][i]['title'] # 獲取事件的標題link = html[month][month+day][i]['link'] # 獲取事件的詳情鏈接type = html[month][month+day][i]['type'] # 獲取事件的類型(birthday,death,event)desc = html[month][month+day][i]['desc'] # 獲取事件的詳情title = re.sub(r'<.*?>','',title) #去掉標題里一堆的超鏈接desc = re.sub(r'<.*?>','',desc)+'...' # 去掉詳情里一堆的超鏈接The_Api = {"year":year,"title":title,"link":link,"desc":desc,"type":type} # 組成一個字典Api_list.append(The_Api) # 列表套字典return json.dumps(Api_list) # 編碼成json數據,好調用if __name__ == '__main__':returnApi()

Flask調用處理過的數據( 在API_.py下)

from Scrapy_ import returnApi import json from flask import Flask,render_templateapp = Flask(__name__) datas = json.loads(returnApi()) # 取的所有數據,列表套字典。 @app.route("/") def index():return render_template('index2.html',datas=datas)if __name__ == '__main__':app.run(debug="True",host="127.0.0.1",port='5001')

HTML展示數據(在html2.html下)

  • style樣式
<title>歷史上的今天</title><style>#events{width:590px;margin:0 auto;background:#EBEBED;}.year{margin-left:-88px;font-size:25px;}#time{align=center;width:550px;}.title{font-size:16px;}.desc{font-size:14px;color:#999999;margin-top:10px;}.event{width:510px;}dd{padding:15px;}dl{box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);border-radius: 25px;}#time{margin-left:100px;}</style> </head>
  • 展示數據列表
<body> <div id="events"><dl class="dl"><div id="time" ></div>{% for data in datas %}<dd><div class="year">{{ data['year'] }}年</div><div class="event"><div class="title">{{ data['title'] }}</div><div class="desc">{{ data['desc'] }}...<a href="{{ data['link'] }}">更多</a></div></div></dd>{% endfor %}</dl></div><script type="text/javascript"> <!--展示當前的詳細時間--> function time(){ var vWeek,vWeek_s,vDay; vWeek = ["星期天","星期一","星期二","星期三","星期四","星期五","星期六"]; var date = new Date(); year = date.getFullYear(); month = date.getMonth() + 1; day = date.getDate(); hours = date.getHours(); minutes = date.getMinutes(); seconds = date.getSeconds(); vWeek_s = date.getDay(); document.getElementById("time").innerHTML = year + "年" +month + "月" + day + "日" + "\t" + hours + ":" + minutes +":" + seconds + "\t" + vWeek[vWeek_s]+"\n歷史上的今天" ;}; setInterval("time()",1000);</script></body>

GitHub項目原碼

總結

以上是生活随笔為你收集整理的python爬取历史上的今天数据并展示。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。