引言
古人云:“不學詩,無以言”,
意思是:不讀《詩經》,連話都不會說了,

《詩經》是中國古代詩歌的開始,也是最早的一部詩歌總集,它的偉大并非內容多艱深,而是生命的百般形態、生活的瑣碎日常,萬事萬物皆可入詩,充滿了人間煙火氣,草木鳥獸蟲魚、飲食男女、七情六欲……
關雎
佚名 〔先秦〕關關雎鳩,在河之洲,窈窕淑女,君子好逑,
參差荇菜,左右流之,窈窕淑女,寤寐求之,
求之不得,寤寐思服,悠哉悠哉,輾轉反側,
參差荇菜,左右采之,窈窕淑女,琴瑟友之,
參差荇菜,左右芼之,窈窕淑女,鐘鼓樂之,
這一首《關睢》是初中幼ò肝上學的,大多數中國人都能熟練背出前兩句吧,詩經中還有很多很多關于愛情、吃穿、禮樂、理想、情感等方面的美句,現在我想用爬蟲生成一本《詩經》電子書,好好學習學習,準備做一個“有文化”的程式人,以此向1024節致敬!
生成目錄
先來做一個詩經目錄,簡單地用requests獲取get網頁,再用BeautifulSoup分析,獲取詩經風雅頌全部章節,并獲取所有能下載的鏈接(不全因部分詩歌已佚),代碼如下:
from requests import get
from bs4 import BeautifulSoup as bs
webSite = 'https://*********'
def directory():
global Urls
Urls = []
url1 = webSite + '/gushi/shijing.aspx'
text = get(url1)
text.encoding='uft-8'
soup = bs(text.text,'html.parser')
Tags = soup.find_all('div',class_='typecont')
for i,tag in enumerate(Tags):
aTags = tag.find("strong")
print(f'\nNo.{i+1}:《{aTags.text}》\n')
bTags = tag.find_all("a")
try:
Title = [(t.text,t['href']) for t in bTags]
except:
Title = [(t.text,'None') for t in bTags]
for i,t in enumerate(Title):
if t[1]!='None':
Urls.append(t[1])
print(f'{t[0]:<8}',end='\t' if (i+1)%3 else '\n')
if i%3!=2: print()
print('\n'+'='*40)
if __name__=='__main__':
directory()
代碼中網址已隱去,微信搜索并關注“PythonTogether”公眾號(或者掃碼文末的二維碼),關注后回復“詩經”獲取,運行結果如下:
No.1:《國風·周南》
關雎 葛覃 卷耳
樛木 螽斯 桃夭
兔罝 芣苢 漢廣
汝墳 麟之趾========================================
No.2:《國風·召南》
鵲巢 采蘩 草蟲
采蘋 甘棠 行露
羔羊 殷其雷 摽有梅
小星 江有汜 野有死麕
何彼襛矣 騶虞========================================
No.3:《國風·邶風》
柏舟 綠衣 燕燕
日月 終風 擊鼓
凱風 雄雉 匏有苦葉
谷風 式微 旄丘
簡兮 泉水 北門
北風 靜女 新臺
二子乘舟========================================
No.4:《國風·鄘風》
柏舟 墻有茨 君子偕老
桑中 鶉之奔奔 定之方中
蝃蝀 相鼠 干旄
載馳========================================
No.5:《國風·衛風》
淇奧 考槃 碩人
氓 竹竿 芄蘭
河廣 伯兮 有狐
木瓜========================================
No.6:《國風·王風》
黍離 君子于役 君子陽陽
國風·王風·揚之水 中谷有蓷 兔爰
葛藟 采葛 大車
丘中有麻========================================
No.7:《國風·鄭風》
緇衣 將仲子 叔于田
大叔于田 清人 羔裘
遵大路 女曰雞鳴 有女同車
山有扶蘇 萚兮 狡童
褰裳 豐 東門之墠
風雨 子衿 鄭風·揚之水
出其東門 野有蔓草 溱洧========================================
No.8:《國風·齊風》
雞鳴 還 著
東方之日 東方未明 南山
甫田 盧令 敝笱
載驅 猗嗟========================================
No.9:《國風·魏風》
葛屨 汾沮洳 園有桃
陟岵 十畝之間 伐檀
碩鼠========================================
No.10:《國風·唐風》
蟋蟀 山有樞 揚之水
椒聊 綢繆 杕杜
詩經·羔裘 鴇羽 無衣
有杕之杜 葛生 采苓========================================
No.11:《國風·秦風》
車鄰 駟驖 小戎
蒹葭 終南 黃鳥
晨風 秦風·無衣 渭陽
權輿========================================
No.12:《國風·陳風》
宛丘 東門之枌 衡門
東門之池 東門之楊 墓門
防有鵲巢 月出 株林
澤陂========================================
No.13:《國風·檜風》
羔裘 素冠 隰有萇楚
匪風========================================
No.14:《國風·曹風》
蜉蝣 候人 鳲鳩
下泉========================================
No.15:《國風·豳風》
七月 鴟鸮 東山
破斧 伐柯 九罭
狼跋========================================
No.16:《小雅·鹿鳴之什》
鹿鳴 四牡 皇皇者華
常棣 伐木 天保
采薇 出車 小雅·杕杜
魚麗 南陔(今佚) 白華(今佚)
華黍(今佚)========================================
No.17:《小雅·南有嘉魚之什》
南有嘉魚 南山有臺 由庚(今佚)
崇丘(今佚) 由儀(今佚) 蓼蕭
湛露 彤弓 菁菁者莪
六月 采芑 車攻
吉日========================================
No.18:《小雅·鴻雁之什》
鴻雁 庭燎 沔水
鶴鳴 祈父 白駒
小雅·黃鳥 我行其野 斯干
無羊========================================
No.19:《小雅·節南山之什》
節南山 正月 十月之交
雨無正 小旻 小宛
小弁 巧言 何人斯
巷伯========================================
No.20:《小雅·谷風之什》
谷風 蓼莪 大東
四月 北山 無將大車
小明 鼓鐘 楚茨
信南山========================================
No.21:《小雅·甫田之什》
甫田 大田 瞻彼洛矣
裳裳者華 桑扈 鴛鴦
頍弁 車舝 青蠅
賓之初筵========================================
No.22:《小雅·魚藻之什》
魚藻 采菽 角弓
菀柳 都人士 采綠
黍苗 隰桑 白華
綿蠻 瓠葉 漸漸之石
苕之華 何草不黃========================================
No.23:《大雅·文王之什》
文王 大明 綿
棫樸 旱麓 思齊
皇矣 靈臺 下武
文王有聲========================================
No.24:《大雅·生民之什》
生民 行葦 既醉
鳧鹥 大雅·假樂 公劉
泂酌 卷阿 民勞
板========================================
No.25:《大雅·蕩之什》
蕩 抑 桑柔
云漢 崧高 烝民
韓奕 江漢 常武
瞻卬 召旻========================================
No.26:《周頌·清廟之什》
清廟 維天之命 維清
烈文 天作 昊天有成命
我將 時邁 執競
思文========================================
No.27:《周頌·臣工之什》
臣工 噫嘻 振鷺
豐年 有瞽 潛
雝 載見 有客
武========================================
No.28:《周頌·閔予小子之什》
閔予小子 訪落 敬之
小毖 載芟 良耜
絲衣 酌 桓
賚 般========================================
No.29:《魯頌·駉之什》
駉 有駜 泮水
閟宮========================================
No.30:《商頌》
那 烈祖 玄鳥
長發 殷武========================================
爬取正文生成檔案
抓取的內容整理后直接寫入文本檔案,網址同樣已隱去,代碼如下:
from requests import get
from bs4 import BeautifulSoup as bs
from time import perf_counter
webSite = 'https://*********'
def directory():
global Urls
Urls = []
url1 = webSite + '/gushi/shijing.aspx'
text = get(url1)
text.encoding='uft-8'
soup = bs(text.text,'html.parser')
Tags = soup.find_all('div',class_='typecont')
output = '《詩經》風雅頌.txt'
with open(output,'w',encoding='utf-8') as tofile:
print('《詩經》總目錄\n',file=tofile)
for i,tag in enumerate(Tags):
aTags = tag.find("strong")
print(f'\nNo.{i+1}:《{aTags.text}》\n',file=tofile)
bTags = tag.find_all("a")
try:
Title = [(t.text,t['href']) for t in bTags]
except:
Title = [(t.text,'None') for t in bTags]
for i,t in enumerate(Title):
if t[1]!='None':
Urls.append(t[1])
print(f'{t[0]:<8}',end='\t' if (i+1)%3 else '\n',file=tofile)
if i%3!=2: print(file=tofile)
print('\n'+'='*40,file=tofile)
def content():
output = '《詩經》風雅頌.txt'
with open(output,'a',encoding='utf-8') as tofile:
print('\n《詩經》正文\n',file=tofile)
for i,url in enumerate(Urls):
print(f'\nNo.{i+1}',file=tofile)
url2 = webSite + url
text = get(url2)
text.encoding='uft-8'
soup = bs(text.text,'html.parser')
Tags = soup.find('div',id="sonsyuanwen")
text = str(Tags).replace('<br/>','\n')
text = text.replace('完善','').strip()
text = bs(text,'html.parser').text
while '\n\n' in text:
text = text.replace('\n\n','\n')
print(text,file=tofile)
print('-'*40,file=tofile)
if __name__=='__main__':
directory()
content()
print(f'\n程式運行耗時(s):{perf_counter()}\n')
程式執行后大約50秒,一本電子書《詩經》風雅頌.txt 就生成后了,可以拷貝進kindle設備慢慢看吧,其實網站還有更精彩的詩歌賞析,這些內容有?“展開閱讀全文”?的縮略,這個留待以后再想辦法解決,(本篇完)
學習交流 Python 的群和公眾號:

http://qr01.cn/FHYKEa

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/335208.html
標籤:其他
上一篇:競賽最好用的平衡樹-Size Balanced Tree(SBT)【建議收藏】
下一篇:華為網路配置(STP與MSTP)
