数据爬取-历史上的今天
前情提要
之前做的摸鱼邮件提醒,由于过了国庆假期,今年就没有假期了,倒计时部分就没有了盼头,得加点东西,看不见未来那就看看历史吧,加个历史上的今天部分。
关于数据源:百度有提供历史上的今天,那么爬一下再处理一下就完事了。看了一下内容也很简单,也不需要cookie啥的。
然后,日常逛github中,看到了一个gopup的项目,提供了一些公开的数据源,发现里面就有提供历史上的今天的数据,直接提供
DataFrame
,刚好之前也学过pandas 和nump库,对这个格式也不陌生,那这不就很方便,就处理一下就行了。就开始写了起来。
代码部分
# encoding=utf-8
import gopup as gp
import re
import datetime
def history_today():
df_index = gp.history_daily()
f = open("./histroy-today" + datetime.datetime.now().strftime('%Y-%m-%d') + ".txt", "w", encoding='UTF-8')
title = df_index['title']
cl_title = []
cl_year = []
for x in title:
# 正则表达式去掉<a>标签
result = re.split('</a>', x)
m = result[0]
m = re.split('<a.*>', m)
outstr = ""
for n in m:
outstr += n
outstr += result[1]
cl_title.append(outstr)
for y in df_index['year']:
# 处理年份数字
if y[0] == '-':
daystr = "公元前" + y[1:] + "年"
else:
daystr = y + "年"
cl_year.append(daystr)
for z in range(len(df_index['year'])):
# 生成最终语句
finalcontent = cl_year[z] + ',' + cl_title[z] + '\n'
f.write(finalcontent)
f.close()
if __name__ == "__main__":
history_today()
成果
histroy-today2021-09-30.txt
1147年,南宋皇帝宋光宗赵惇出生
1626年,清朝创始人爱新觉罗·努尔哈赤逝世
1862年,德国首任宰相俾斯麦实行“铁血政策”
1895年,苏联元帅华西列夫斯基出生
1911年,意大利土耳其争夺的黎波里
1917年,大韩民国总统朴正熙出生
1920年,中国现代著名作家张爱玲出生
1924年,美国作家杜鲁门·卡波特出生
1938年,中华民国国务总理唐绍仪逝世
1941年,第二次世界大战,莫斯科保卫战开始
1949年,人民英雄纪念碑奠基
1955年,美国知名电影演员詹姆斯·迪恩逝世
1965年,印度尼西亚发生印尼九·三〇事件
1973年,故宫博物院创建人李石曾逝世
1990年,澳洲著名小说家帕特里克·怀特逝世