用Python爬取古诗文网的各类古诗

2024-03-05 07:52

本文主要是介绍用Python爬取古诗文网的各类古诗,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

fetch-gushiwen

用途

可以拿去用于个人知识库、知识图谱的创建等其他学习用途。

使用

输入古诗文网的链接,即可爬取该页面所有诗歌的诗名,作者,朝代,内容,译文,注释,赏析,创作背景。

输出的json格式如下:

{'name': '行宫', 'author': '元稹', 'dynasty': '唐代', 'content': '寥落古行宫,宫花寂寞红。白头宫女在,闲坐说玄宗。', 'trans': '曾经富丽堂皇的古行宫已是一片荒凉冷落,宫中艳丽的花儿在寂寞寥落中开放。幸存的几个满头白发的宫女,闲坐无事只能谈论着玄宗轶事。', 'annotation': '寥(liáo)落:寂寞冷落。行宫:皇帝在京城之外的宫殿。这里指当时东都洛阳的皇帝行宫上阳宫。宫花:行宫里的花。白头宫女:据白居易《上阳白发人》,一些宫女天宝末年被“潜配”到上阳宫,在这冷宫里一闭四十多年,成了白发宫人。说:谈论。玄宗:指唐玄宗。', 'appreciation': '元稹的这首《行宫》是一首抒发盛衰之感的诗,这首短小精悍的五绝具有深邃的意境,富有隽永的诗味,倾诉了宫女无穷的哀怨之情,寄托了诗人深沉的盛衰之感。诗人先写环境。首句中“寥落”已点出行宫的空虚冷落,又着一“古”字,更显其破旧之象。这样的环境本身就暗示着昔盛今衰的变迁。而后以“宫花寂寞红”续接,此处可见运思缜密。娇艳红花与古旧行宫相映衬,更见行宫“寥落”,加强了时移世迁的盛衰之感。两句景语,令人心无旁骛,只有沉沉的感伤。后两句由景及人,写宫女,“白头”与第二句中的红花相映衬。宫中花开如旧,而当年花容月貌的宫女已变成了白发老妇。物是人非,此间包含着多少哀怨、多少凄凉便不言而喻了。末句“闲”字与上文“寂寞”相照应,写出宫女们长年受冷落的孤寂与无奈。过去她们的一颦一笑、盛装丽服只为取悦君王,而今再无缘见龙颜,她们还能做什么呢? 只能无聊地“闲”在冷宫。而这些宫女们所谈的仍旧是玄宗盛世。这一方面表现了她们对往昔生活的追忆,另方面也证明了如今无可言说的空虚。比较之下,那种深沉的盛衰之感越发鲜明突出而具体了。这里,寥落古行宫中的白头宫女,还是唐玄宗时代历史的见证人。唐玄宗在其继位后期,宠幸杨贵妃,终日沉溺在淫乐酒色之中,把政务全部委给奸相李林甫和杨国忠,朝纲紊乱,谄佞当道,终于酿成安史之乱。乱后,玄宗被迫退位,赫赫不可一世的大唐王朝亦从此一蹶不振,日益走向下坡路。白居易在《长恨歌》里曾深致感慨说:“缓歌慢舞凝丝竹,尽日君王看不足。渔阳鼙鼓动地来,惊破霓裳羽衣曲。”四句诗,已形象地概括出玄宗昏愦好色与亡国致乱的历史因由,其讽刺与揭露是十分深刻的。元稹这首短诗当然不可能象白诗那样铺张扬厉,极尽渲染之能事,他只能采取对照、暗示点染等方法,把这一段轰轰烈烈的历史高度浓缩,加以典型化的处理,从而让人回味咀嚼。寥落的古行宫,那在寂寞之中随岁月更替而自生自落的宫花,那红颜的少女变为白发老人,都深深地带有时代盛衰迁移的痕迹。白头宫女亲历开元、天宝之世,本身就是历史的见证人,“闲坐说玄宗”的由治而乱。这本是诗篇主旨所在,也是诗人认为应引以为戒的地方,却以貌似悠闲实则深沉的笔调加以表现,语少意多,有无穷之味。二十个字,地点、时间、人物、动作,全都表现出来了,构成了一幅非常生动的画面。这个画面触发读者联翩的浮想:宫女们年轻时都是花容月貌,娇姿艳质,这些美丽的宫女被禁闭在这冷落的古行宫中,成日寂寞无聊,看着宫花,花开花落,年复一年,青春消逝,红颜憔悴,白发频添,如此被摧残,往事岂堪重新回顾!然而,她们被幽闭冷宫,与世隔绝,别无话题,却只能回顾天宝时代玄宗遗事,此景此情,令人凄绝。“寥落”、“寂寞”、“闲坐”,既描绘当时的情景,也反映诗人的倾向。凄凉的身世,哀怨的情怀,盛衰的感慨,二十个字描绘出那样生动的画面,表现出那样深刻的思想。这首诗正是运用以少总多的表现手法,语少意足,有无穷味。另一个表现手法是以乐景写哀情。我国古典诗歌,其所写景物,有时从对立面的角度反衬心理,利用忧思愁苦的心情同良辰美景气氛之间的矛盾,以乐景写哀情,却能收到很好的艺术效果。这首诗也运用了这一手法。诗所要表现的是凄凉哀怨的心境,但却着意描绘红艳的宫花。红花一般是表现热闹场面,烘托欢乐情绪的,但在这里却起了很重要的反衬作用:盛开的红花和寥落的行宫相映衬,加强了时移世迁的盛衰之感;春天的红花和宫女的白发相映衬,表现了红颜易老的人生感慨;红花美景与凄寂心境相映衬,突出了宫女被禁闭的哀怨情绪。红花,在这里起了很大的作用。这都是利用好景致与恶心情的矛盾,来突出中心思想,即王夫之《姜斋诗话》所谓“以乐景写哀”,一倍增其哀。白居易《上阳白发人》“宫莺百啭愁厌闻,梁燕双栖老休妒”,也可以说是以乐写哀。不过白居易的写法直接揭示了乐景写哀情的矛盾,而元稹《行宫》则是以乐景作比较含蓄的反衬,显得更有余味。这首绝句语言平实,但很有概括力,精警动人,也很含蓄,给人以想象的天地,历史沧桑之感尽在不言之中,寓意深刻,自来评价很高。王建的《宫词》,白居易的《长恨歌》,元稹的《连昌宫词》,都是长达千字左右的宏篇巨制,详尽地描述了唐玄宗时代治乱兴衰的历史过程,感叹兴亡。总结教训,内容广博而深刻。元稹这首小诗总共不过二十个字,能入选《唐诗三百首》,与这些长篇巨作比美,可谓短小精悍,字字珠玑。', 'background': '元稹生活在中唐年代,正值唐朝经历过安史之乱不久,国力的各个方面都在走下坡路之时。这首诗可能是他在唐宪宗元和四年(809)作于洛阳。'}

例如我要爬取唐诗三百首,先去古诗文网获得唐诗三百首的网址链接:
在这里插入图片描述

右侧的古诗三百,宋词三百,小学古诗等都可以爬取你只需要拿到链接就可以了。

运行python代码,结果如下:
在这里插入图片描述

代码结构

import requests
import re
from bs4 import BeautifulSoupdef fetch_html(url):try:response = requests.get(url)response.raise_for_status()return response.textexcept requests.RequestException as e:print(f"Error fetching HTML content: {e}")return Nonedef extract_poem_urls(html_content):soup = BeautifulSoup(html_content, 'html.parser')poem_urls = []for a_tag in soup.find_all('a', href=True):href = a_tag['href']if href.startswith("/shiwenv_"):full_url = f"https://so.gushiwen.cn{href}"poem_urls.append(full_url)return poem_urlsdef fetch_poem_details(url):poem_details = {"name": "","author": "","dynasty": "","content": "","trans": "","annotation": "","appreciation": "","background": ""}soup = BeautifulSoup(fetch_html(url), 'html.parser')#省略if __name__ == "__main__":url = input("Please enter the URL(example:https://so.gushiwen.cn/gushi/tangshi.aspx): ")poem_urls = []html_content = fetch_html(url)if html_content:poem_urls.extend(extract_poem_urls(html_content))else:print("Failed to fetch or parse HTML content.")for url in poem_urls:details = fetch_poem_details(url)print(details)

完整爬虫代码见仓库:https://github.com/palp1tate/fetch-gushiwen

声明

本爬虫代码仅可用于个人学习用途,切勿用于任何商业用途!!!

这篇关于用Python爬取古诗文网的各类古诗的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/775805

相关文章

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

基于Linux的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py

python使用库爬取m3u8文件的示例

《python使用库爬取m3u8文件的示例》本文主要介绍了python使用库爬取m3u8文件的示例,可以使用requests、m3u8、ffmpeg等库,实现获取、解析、下载视频片段并合并等步骤,具有... 目录一、准备工作二、获取m3u8文件内容三、解析m3u8文件四、下载视频片段五、合并视频片段六、错误

Python中提取文件名扩展名的多种方法实现

《Python中提取文件名扩展名的多种方法实现》在Python编程中,经常会遇到需要从文件名中提取扩展名的场景,Python提供了多种方法来实现这一功能,不同方法适用于不同的场景和需求,包括os.pa... 目录技术背景实现步骤方法一:使用os.path.splitext方法二:使用pathlib模块方法三

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.