python爬虫制作古诗或者藏头诗

昨天晚上,见到室友发了一条非常文艺的诗句说说,我就想,我这文采是不行了,但是机器应该可以。我今天就做了个非常简单的诗歌编辑脚本。过于简陋,仅供参考。


前言

中国古诗词,是中华文化的特色,也是高级语言的一种表达。今天我就壮着胆子表现一下。


提示:以下是本篇文章正文内容,下面案例可供参考

一、制作古诗或者藏头诗?

我先说一下我的思路:
1.从网络上爬取古诗词
2.对古诗词进行处理,只保留5言或7言的句子
3.通过随机组合成诗句

二、使用步骤

1.引入库

我们所用到的库是经常使用的:

import requests
from lxml import etree
import time
import random

2.爬取古诗词网

之所以爬取两个url是因为,处理后可用的诗词句太少了,所以多方面获取,这个诗词句文件内容越多越好(这样爬取会有干扰需自己手动处理):

def get_shici():
    """
    获取诗词网的数据
    """
    for i in range(1, 21):
        # 获取url
        url = "https://so.gushiwen.cn/shiwen/default_0AA{}.aspx".format(i)
        # 获取网页数据
        html = requests.get(url).text
        # text格式转为HTML格式
        html = etree.HTML(html)
        # 通过xpath定位需要的信息 (返回的是一个列表)
        shi_poem = html.xpath(
            '//div[@class="main3"]/div[@class="left"]/div[@class="sons"]/div[@class="cont"]/div[@class="contson"]/text()')
        # 遍历数据
        for url_data in shi_poem:
            # 转为字符串并去除空格
            strs = "".join(url_data)
            # 判断是否有数据
            if strs.isascii() == 0:
                # 保存数据
                with open("gushi.txt", "a", encoding="utf-8") as f:
                    f.write(strs.strip() + "\n")
        print("正在下载第{}页的古诗".format(i))
        # 延时2秒
        time.sleep(2)
    for i in range(1, 6):
        # 获取url
        url = "https://so.gushiwen.cn/mingjus/default.aspx?page={}".format(i)
        # 获取网页数据
        html = requests.get(url).text
        # text格式转为HTML格式
        html = etree.HTML(html)
        # 通过xpath定位需要的信息 (返回的是一个列表)
        shi_poem = html.xpath(
            '//*[@id="html"]/body/div[2]/div[1]/div[2]/div/a[1]/text()')
        # 遍历数据
        for url_data in shi_poem:
            # 转为字符串并去除空格
            strs = "".join(url_data)
            # 判断是否有数据
            if strs.isascii() == 0:
                # 保存数据
                with open("gushi.txt", "a", encoding="utf-8") as f:
                    f.write(strs.strip() + "\n")
        print("正在下载第{}页的古诗".format(i))
        # 延时2秒
        time.sleep(2)
    print("下载完成!!!")

3.读取文件并处理文件

知识涉及太少,也没有很好的处理方法,就只有最原始的硬解

# 读取文件
with open("gushi.txt", "r", encoding="utf-8") as f:
    poems = f.read()
# 对文件处理  暂时没有想到更好的方法
# 把所有的 。 ? ! 转换为 ,号
poems = poems.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值