Python爬虫实战(3)古诗文网

Python爬虫实战(3)古诗文网

  • 网页分析
  • 代码
    • 注意事项
  • 输出结果

利用BeautifulSoup和和requests库实现古诗文网的古诗抓取

运行平台: Windows
Python版本: Python 3.8
IDE: Pycharm

抓取古诗文网的古诗和标题

网页分析

古诗文网https://www.gushiwen.org/default_1.aspx
Python爬虫实战(3)古诗文网_第1张图片
       所有的古诗都放在div class=“left” 中的 div class=“son” 中.
       而古诗的标题则在其中的p标签的a标签中,古诗的内容在div class=“contson”

代码

# 从古诗文网上爬取古诗
import requests
from bs4 import BeautifulSoup


def parser_page(url):
    response = requests.get(url)
    html = response.text
    bs = BeautifulSoup(html, 'html.parser')
    sons = bs.find_all('div', class_='left')[1].find_all('div', class_='sons')
    print('\n')
    for son in sons:
        title = son.find('p').a.string
        poem = son.find('div', class_='contson')
        # 去除前面的标签符号和<br>这些
        poem = str(poem.text.replace('\xa0' * 8, '\n'))
        print(title, end=' : ')
        print(poem)
        print('*' * 30)


def main():
    pagenum = 2
    for i in range(pagenum):
        url = 'https://www.gushiwen.org/default_' + str(i + 1) + '.aspx'
        parser_page(url)


if __name__ == '__main__':
    main()

注意事项

        # 去除前面的标签符号和<br>这些,转成str以便可以做strip()操作
        poem = str(poem.text.replace('\xa0' * 8, '\n'))
        print(title, end=' : ')
        print(poem)
        print('*' * 30)

       要是没有 poem = str(poem.text.replace(’\xa0’ * 8, ‘\n’)) 去除前的br标签, 直接得到的结果显示不太好看,会带有这些标签,如下::

蝶恋花·醉别西楼醒不记 : <div class="contson" id="contson7f30c8f6836d">
醉别西楼醒不记。春梦秋云,聚散真容易。斜月半窗还少睡。画屏闲展吴山翠。 <br/>衣上酒痕诗里字。点点行行,总是凄凉意。红烛自怜无好计。夜寒空替人垂泪。
</div>
******************************
浣溪沙·花榭香红烟景迷 : <div class="contson" id="contson89aef34b556d">
花榭香红烟景迷,满庭芳草绿萋萎,金铺闲掩绣帘低。<br/>紫燕一双娇语碎,翠屏十二晚峰齐,梦魂消散醉空闺。
</div>
******************************

输出结果

蝶恋花·醉别西楼醒不记 : 
醉别西楼醒不记。春梦秋云,聚散真容易。斜月半窗还少睡。画屏闲展吴山翠。 衣上酒痕诗里字。点点行行,总是凄凉意。红烛自怜无好计。夜寒空替人垂泪。

******************************
浣溪沙·花榭香红烟景迷 : 
花榭香红烟景迷,满庭芳草绿萋萎,金铺闲掩绣帘低。紫燕一双娇语碎,翠屏十二晚峰齐,梦魂消散醉空闺。

******************************
江城子·醉来长袖舞鸡鸣 : 
醉来长袖舞鸡鸣,短歌行,壮心惊。西北神州,依旧一新亭。三十六峰长剑在,星斗气,郁峥嵘。古来豪侠数幽并,鬓星星,竟何成!他日封侯,编简为谁青?一掬钓鱼坛上泪,风浩浩,雨冥冥。

******************************
断句 : 
近水楼台先得月,向阳花木易为春。

******************************
月下笛·万里孤云 : 
孤游万竹山中,闲门落叶,愁思黯然,因动《黍离》之感。时寓甬东积翠山舍。
万里孤云,清游渐远,故人何处?寒窗梦里,犹记经行旧时路。连昌约略无多柳,第一是难听夜雨。漫惊回凄悄,相看烛影,拥衾谁语?张绪归何暮?半零落依依,断桥鸥鹭。天涯倦旅,此时心事良苦。只愁重洒西州泪,问杜曲人家在否?恐翠袖正天寒,犹倚梅花那树。

******************************
随师东 : 
东征日调万黄金,几竭中原买斗心。军令未闻诛马谡,捷书惟是报孙歆。但须鸑鷟巢阿阁,岂假鸱鸮在泮林。可惜前朝玄菟郡,积骸成莽阵云深。

******************************
骆谷晚望 : 
秦川如画渭如丝,去国还家一望时。公子王孙莫来好,岭花多是断肠枝。

******************************
踏莎行·题草窗词卷 : 
白石飞仙,紫霞凄调,断歌人听知音少。几番幽梦欲回时,旧家池馆生青草。风月交游,山川怀抱,凭谁说与春知道?空留离恨满江南,相思一夜苹花老。

******************************
武陵春·春晚 : 
风住尘香花已尽,日晚倦梳头。物是人非事事休,欲语泪先流。闻说双溪春尚好,也拟泛轻舟。只恐双溪舴艋舟,载不动许多愁。

******************************
送桂州严大夫同用南字 : 
苍苍森八桂,兹地在湘南。江作青罗带,山如碧玉篸。户多输翠羽,家自种黄甘。远胜登仙去,飞鸾不假骖。

******************************


彩云归·蘅皋向晚舣轻航 : 
蘅皋向晚舣轻航。卸云帆、水驿鱼乡。当暮天、霁色如晴昼,江练静、皎月飞光。那堪听、远村羌管,引离人断肠。此际浪萍风梗,度岁茫茫。堪伤。朝欢暮散,被多情、赋与凄凉。别来最苦,襟袖依约,尚有余香。算得伊、鸳衾凤枕,夜永争不思量。牵情处,惟有临歧,一句难忘。

******************************
鹧鸪天·东阳道中 : 
扑面征尘去路遥,香篝渐觉水沉销。山无重数周遭碧,花不知名分外娇。人历历,马萧萧,旌旗又过小红桥。愁边剩有相思句,摇断吟鞭碧玉梢。

******************************
衡门 : 
衡门之下,可以栖迟。泌之洋洋,可以乐饥。岂其食鱼,必河之鲂?岂其取妻,必齐之姜?岂其食鱼,必河之鲤?岂其取妻,必宋之子?

******************************
绝句送巨山 : 
二年寄迹闽山寺,一笑翻然向浙江。明月不知君已去,夜深还照读书窗。

******************************
寒食诗 : 
寒食时看郭外春,野人无处不伤神。平原累累添新冢,半是去年来哭人。

******************************
浣溪沙·漠漠轻寒上小楼 : 
漠漠轻寒上小楼,晓阴无赖似穷秋。淡烟流水画屏幽。自在飞花轻似梦,无边丝雨细如愁。宝帘闲挂小银钩。

******************************
荷叶杯·弱柳好花尽拆 : 
弱柳好花尽拆,晴陌。陌上少年郎,满身兰麝扑人香。狂么狂,狂么狂?

******************************
喜迁莺·鸠雨细 : 
鸠雨细,燕风斜。春悄谢娘家。一重帘外即天涯。何必暮云遮。 钏金寒,钗玉冷。薄醉欲成还醒。一春梳洗不簪花。孤负几韶华。

******************************
结客少年场行 : 
紫燕黄金瞳,啾啾摇绿騣。平明相驰逐,结客洛门东。少年学剑术,凌轹白猿公。珠袍曳锦带,匕首插吴鸿。由来万夫勇,挟此生雄风。托交从剧孟,买醉入新丰。笑尽一杯酒,杀人都市中。羞道易水寒,从令日贯虹。燕丹事不立,虚没秦帝宫。舞阳死灰人,安可与成功。

******************************
阳关曲·中秋月 : 
中秋作本名小秦王,入腔即阳关曲
暮云收尽溢清寒,银汉无声转玉盘。此生此夜不长好,明月明年何处看。

******************************

你可能感兴趣的:(Python爬虫)