python爬取诗词通用模板,非常方便!

通过对上篇文章代码进行加工,使可读性增强,代码如下:


```python
from urllib.error import HTTPError
import requests
from lxml import etree


def getOnePage(url):
    "得到一页信息"
    header = {
        "User-Agent": "Mozilla/5.0(Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/70.0.3538.110 Safari/537.36"}
    try:
        r= requests.get(url,headers=header,timeout=30)
        r.raise_for_status()  # 如果状态码不是200, 引发HttpError异常
        r.encoding = r.apparent_encoding# 从内容分析出响应内容的编码格式
        return r.text
    except HTTPError as e:
        print(e)
def parseOnPage(text):
    title = []
    content = []
    r = etree.HTML(text)
    for row in r.xpath("//div[@class='shici_list_main']"):
        title1 = row.xpath("h3/a/text()")[0]
        if row.xpath("div/div/text()"):
            content1 = "\n".join(row.xpath("div/text()")).replace('  ', '').rstrip() + "\n".join(row.xpath("div/div/text()")).replace('  ', '')
        else:
            content1 = "\n".join(row.xpath("div/text()")).replace('  ', '')
        title.append(title1)
        content.append(content1)
    return title,content


def wirte2File(n,title,content):
    # 路径需要自己重新定义
    with open("李白诗词.txt", 'a', encoding='utf-8') as fp:
        fp.write("【{}】{}{}\n\n".format(n,title,content))


def main():
    n=0
    i=1
    for offset in range(50):
        if offset==0:
            url = "http://www.shicimingju.com/chaxun/zuozhe/1.html"
        else:
            url = "http://www.shicimingju.com/chaxun/zuozhe/"+"1_"+str(offset+1)+".html"
        text= getOnePage(url)
        title,content=parseOnPage(text)
        for item in zip(title,content):
            n+=1
            wirte2File(n,item[0],item[1])
        i+=1
        print("\r当前进度: {:.2f}%".format(i*100 / 50), end="")
main()

爬取的诗词如下:
【1】《长干行二首》
其一
妾发初覆额,折花门前剧。
郎骑竹马来,绕床弄青梅。
同居长干里,两小无嫌猜,
十四为君妇,羞颜未尝开。
低头向暗壁,千唤不一回。
十五始展眉,愿同尘与灰。
常存抱柱信,岂上望夫台。
十六君远行,瞿塘滟滪堆。
五月不可触,猿声天上哀。
门前迟行迹,一一生绿苔。
苔深不能扫,落叶秋风早。
八月胡蝶来,双飞西园草。
感此伤妾心,坐愁红颜老。
早晚下三巴,预将书报家。
相迎不道远,直至长风沙。
其二
忆妾深闺里,烟尘不曾识。
嫁与长干人,沙头候风色。
五月南风兴,思君下巴陵。
八月西风起,想君发扬子。
去来悲如何,见少离别多。
湘潭几日到,妾梦越风波。
昨夜狂风度,吹折江头树。
淼淼暗无边,行人在何处。
好乘浮云骢,佳期兰渚东。
鸳鸯绿蒲上,翡翠锦屏中。
自怜十五余,颜色桃花红。
那作商人妇,愁水复愁风。

【2】《将进酒·君不见黄河之水天上来》
君不见黄河之水天上来,奔流到海不复回。
君不见高堂明镜悲白发,朝如青丝暮成雪。
人生得意须尽欢,莫使金樽空对月。
天生我材必有用,千金散尽还复来。
烹羊宰牛且为乐,会须一饮三百杯。
岑夫子,丹丘生,将进酒,杯莫停。
与君歌一曲,请君为我倾耳听。
钟鼓馔玉不足贵,但愿长醉不复醒。
古来圣贤皆寂寞,惟有饮者留其名。
陈王昔时宴平乐,斗酒十千恣欢谑。
主人何为言少钱,径须沽取对君酌。
五花马,千金裘,
呼儿将出换美酒,与尔同销万古愁。

【3】《静夜思》
床前明月光,疑是地上霜。
举头望明月,低头思故乡。

【4】《蜀道难》
噫吁嚱,危乎高哉!蜀道之难,难于上青天!
蚕丛及鱼凫,开国何茫然!
尔来四万八千岁,不与秦塞通人烟。
西当太白有鸟道,可以横绝峨眉巅。
地崩山摧壮士死,然后天梯石栈相钩连。
上有六龙回日之高标,下有冲波逆折之回川。
黄鹤之飞尚不得过,猿猱欲度愁攀援。
青泥何盘盘,百步九折萦岩峦。
扪参历井仰胁息,以手抚膺坐长叹。
问君西游何时还?畏途巉岩不可攀。
但见悲鸟号古木,雄飞雌从绕林间。
又闻子规啼夜月,愁空山。
蜀道之难,难于上青天,使人听此凋朱颜!
连峰去天不盈尺,枯松倒挂倚绝壁。
飞湍瀑流争喧豗,砯崖转石万壑雷。
其险也如此,嗟尔远道之人胡为乎来哉!
剑阁峥嵘而崔嵬,一夫当关,万夫莫开。
所守或匪亲,化为狼与豺。
朝避猛虎,夕避长蛇;磨牙吮血,杀人如麻。
锦城虽云乐,不如早还家。
蜀道之难,难于上青天,侧身西望长咨嗟!

【5】《梦游天姥吟留别》
海客谈瀛洲,烟涛微茫信难求。
越人语天姥,云霞明灭或可睹。
天姥连天向天横,势拔五岳掩赤城。
天台一万八千丈,对此欲倒东南倾。
我欲因之梦吴越,一夜飞度镜湖月。
湖月照我影,送我至剡溪。
谢公宿处今尚在,渌水荡漾清猿啼。
脚著谢公屐,身登青云梯。
半壁见海日,空中闻天鸡。
千岩万转路不定,迷花倚石忽已暝。
熊咆龙吟殷岩泉,栗深林兮惊层巅。
云青青兮欲雨,水澹澹兮生烟。
列缺霹雳,丘峦崩摧。洞天石扉,訇然中开。
青冥浩荡不见底,日月照耀金银台。
霓为衣兮风为马,云之君兮纷纷而来下。
虎鼓瑟兮鸾回车,仙之人兮列如麻。
忽魂悸以魄动,恍惊起而长嗟。
惟觉时之枕席,失向来之烟霞。
世间行乐亦如此,古来万事东流水。
别君去兮何时还,且放白鹿青崖间,
须行即骑访名山。安能摧眉折腰事权贵,
使我不得开心颜。

【6】《望庐山瀑布》
日照香炉生紫烟,遥看瀑布挂前川。
飞流直下三千尺,疑是银河落九天。

【7】《赠汪伦》
李白乘舟将欲行,忽闻岸上踏歌声。
桃花潭水深千尺,不及汪伦送我情。

【8】《行路难·有耳莫洗颍川水》
有耳莫洗颍川水,有口莫食首阳蕨。
含光混世贵无名,何用孤高比云月?
吾观自古贤达人,功成不退皆殒身。
子胥既弃吴江上,屈原终投湘水滨。
陆机雄才岂自保?李斯税驾苦不早。
华亭鹤唳讵可闻?上蔡苍鹰何足道?
君不见吴中张翰称达生,秋风忽忆江东行。
且乐生前一杯酒,何须身后千载名?

【9】《早发白帝城》
朝辞白帝彩云间,千里江陵一日还。
两岸猿声啼不住,轻舟已过万重山。

【10】《独坐敬亭山》
众鸟高飞尽,孤云独去闲。
相看两不厌,只有敬亭山。

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