上一期博客,我为大家介绍了我自己写的一套自动古诗文查询系统。当我们把我们想要的古诗文名字或者其中某句话输入系统时,它会自动将古文的全文打印出来。

今天我所写的这个功能就是基于上一期古诗文查询系统的。

这套系统大致效果是这样的:老师输入一篇古文,系统通过网站自动抓取所要古文,将古文中的一些字替换成下划线让学生们填空。

这套系统将解决一个语文老师很大的痛点:挖空古诗文时需要手动删去文章内容,再手动打出下划线。这套系统可以大大提升老师的办公效率。

逻辑梳理:

第一部分如何实现可以看我的上一期博客:Python实现自动古诗文查询系统_jordan_wang922的博客-CSDN博客

代码如下:

import requests
from bs4 import BeautifulSouppoem = input("您需要查询的诗名或诗句:")
req = requests.get(url="https://so.gushiwen.cn/search.aspx?value=" + poem + "&valuej=" + poem[0])
req.encoding = "utf-8"
html = req.text
soup = BeautifulSoup(req.text, features="html.parser")
poem = soup.find("p", class_="source")
dd = poem.text.strip()
print(dd)
soup = BeautifulSoup(req.text, features="html.parser")
poem = soup.find("div", class_="contson")
ee = poem.text.strip()
print(ee)

我们会抓取到以下结果:

接下来就到我们的第二部分,我的想法是这样的:古诗文中有许多逗号,我们可以用它来作为区分的点。如果没听懂,我用《出师表》举个例子:

先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。

通过逗号区分,就变为

['先帝创业未半而中道崩殂', '今天下三分', '益州疲弊', '此诚危急存亡之秋也。]

这一步其实非常简单,只需要用一行split语句就可以做的

这时候有一步非常关键:计算我们把整首古诗分成了几份,后面有大用

代码如下:

import requests
from bs4 import BeautifulSoup
from collections import Counter# 随便定义一个list,也可以是自己生成的print("老师您好,我是您的古诗文默写挖空助手")
poem = input("输入您需要挖空的古诗文:")
req = requests.get(url="https://so.gushiwen.cn/search.aspx?value=" + poem + "&valuej=" + poem[0])
req.encoding = "utf-8"
html = req.text
soup = BeautifulSoup(req.text, features="html.parser")
poem = soup.find("p", class_="source")
dd = poem.text.strip()
print(dd)
soup = BeautifulSoup(req.text, features="html.parser")
poem = soup.find("div", class_="contson")
ee = poem.text.strip()
ff = ee.split(",")  #区分
#print(ff)
temp = ff
count = Counter(ee)
# 输出元素3的个数
#print(count[','])  #计算有多少个逗号从而计算分成了几份
num = count[',']
gg = ",".join(ff)  #分完在将逗号还回去

接下来我们要做到是让它隔开替换,换句话说,我们需要系统挖一个空,隔一个,再挖。

这里我们需要通过一些代码找到奇数位,如1,3,5,7,9:

number = 1while number < num:  #这里的num就是我们前面数的逗号的数量,不能超出这个数量# 如果number / 2 余数为 1,代表是奇数if number % 2 == 1:#print(number)order = numbernumber += 1

最后一部就是替换了:

    hh = gg.replace(ff[order],"______")  #替换gg = hh  #变量每次都会换

最终代码如下:

import randomimport requests
from bs4 import BeautifulSoup
from collections import Counter# 随便定义一个list,也可以是自己生成的print("老师您好,我是您的古诗文默写挖空助手")
poem = input("输入您需要挖空的古诗文:")
req = requests.get(url="https://so.gushiwen.cn/search.aspx?value=" + poem + "&valuej=" + poem[0])
req.encoding = "utf-8"
html = req.text
soup = BeautifulSoup(req.text, features="html.parser")
poem = soup.find("p", class_="source")
dd = poem.text.strip()
print(dd)
soup = BeautifulSoup(req.text, features="html.parser")
poem = soup.find("div", class_="contson")
ee = poem.text.strip()
ff = ee.split(",")
#print(ff)
temp = ff
count = Counter(ee)
# 输出元素3的个数
#print(count[','])
num = count[',']
gg = ",".join(ff)#print(ff[x + 2])
#for x in range(10):number = 1while number < num:# 如果number / 2 余数为 1,代表是奇数if number % 2 == 1:#print(number)order = numbernumber += 1
#print(hh)hh = gg.replace(ff[order],"______")gg = hhprint(hh)

运行效果如下:

喜欢的话就点个赞吧!

Python实现语文老师默写挖空助手相关推荐

  1. 使用python读取txt坐标文件生成挖空矿山_探矿批量

    # -*-coding:utf-8-*- import arcpy import fileinput import os # 探矿权坐标格式举例 # 111.0846,31.1530 # 111.10 ...

  2. python读取坐标文本文件_使用python读取txt坐标文件生成挖空矿山_探矿批量

    # -*-coding:utf-8-*- import arcpy import fileinput import os # 探矿权坐标格式举例 # 111.0846,31.1530 # 111.10 ...

  3. 人工智能诗歌写作平台_人工智能教作文,只写出二类文,人类语文老师稳赢

    人工智能的深度学习技术 ​2019年<计算机学报>上发表了一篇关于高考作文的研究论文.哈尔滨工业大学计算机科学与技术学院的科研团队利用人工智能的深度学习技术,生成高考作文. 随后,机器写的 ...

  4. 二层板的射频RF信号如何控阻抗 四层板的射频RF信号如何控阻抗  射频信号是否可以不控阻抗,射频差分需要控阻抗吗?为什么射频信号需要挖空隔层参考?射频信号为什么要加粗?

    来自群友的疑难杂症(加杨老师V信:PCB206 可入群):二层板的射频如何走线 四层板的射频如何控阻抗  射频信号是否可以不控阻抗等等 确实很多群友问PCB上面的射频走线该怎么走?比如两层板的射频走线 ...

  5. python 删除list 里面的一个空集合

    python 删除list 里面的一个空集合 与 删除list 里面的一个空元素方法一样 我们可以把空集合当成一个空元素具体操作如下 list_a = [["1", "2 ...

  6. POW矿池挖空块原理和解决方案

    第0章 引言 比特币的挖矿收益包含两部分,第一是区块奖励:第二是交易手续费.如果打空块,就收不到交易手续费,为什么有矿池会不要手续费来打空块呢? 第1章POW挖矿原理 工作量证明POW挖矿就是区块链生 ...

  7. “挖空三座山、装了几万台服务器”的绿色数据中心

    富士康在贵安新区的数据中心造在了山洞里."他们挖空了三座山,装了几万台服务器!" 数据中心主体竣工后,经实际测试年pue值小于1.1,居于世界先进水平. 当时,富士康规划园区中有一 ...

  8. 数学老师出的谜语,语文老师已哭晕在厕所!

    全世界只有3.14 % 的人关注了 爆炸吧知识 数学老师出的这几个谜语,谜面都是数字和运算符号,谜底可都是四个字的成语. 语文老师已经哭晕了,快来试试看,你能猜出几个? 谜面:0000 点击下方空白区 ...

  9. H5案例分享—你的数学是语文老师教的吗?

    教育类H5游戏已经被广泛应用,很多教育软件都采用H5游戏形式向玩家传递知识,金豆微游戏为大家倾情奉献H5数学游戏,测一测你的数学能力有多高,众多的数学算术题,你能答对几题呢,赶紧来挑战一下吧! 游戏需 ...

最新文章

  1. bzoj3442 学习小组
  2. 《评人工智能如何走向新阶段》后记(再续3)
  3. css hack *html,CSS Hack详解
  4. 在Leaflet地图上集成Echarts
  5. Kubernetes安装之五:配置kubectl客户端
  6. 快速安装第三方库的指令——解决第三方库安装超时问题
  7. 【MapReduce】
  8. 小学计算机课评课用语,信息技术评课心得
  9. STM32- 定时器的设定 - 二元一次方程的因素分解求解实现PWM和定时器频率的小数位 - Matlab 方法:
  10. javascript String 对象
  11. 【C语言】案例五十一 员工档案管理系统
  12. 电阻电路的等效变化(Ⅱ)
  13. 【PMP考试最新解读】第七版《PMBOK》应该如何备考?(含最新资料)
  14. python数据的存储结构是指_python数据结构
  15. java.util.Date、java.sql.Date和java.sql.Timestamp之间的转换
  16. 阿里研究院第三届学术委员会成立,主席曾鸣畅谈未来学术生态构建
  17. linux rpm安装openssl,安装 openssl devel
  18. 剑指Offer53-Ⅰ—在排序数组中查找数字
  19. 论一个合格的科研人员该怎么阅读文献?
  20. matlab 渲染效果,MATLAB-MATLAB 已通过改用 OpenGL 软件禁用了某些高级的图形渲染

热门文章

  1. 理工科研究生论文致谢频用诗词,导师:摘要都写不通你还敢搞文学?
  2. 百度推广计划改为计算机端,百度推广;你真的了解闪投吗?
  3. 在线考试系统需要解决的主要问题有哪些
  4. ccf csp认证考试的历年题集汇总
  5. 初识Selenium一种自动化工具
  6. iphone13pro运行内存多大
  7. 这是一个有故事的项目
  8. 安卓面试题大全,有答案哦
  9. SaaS产品订阅模式客户分析方法总结
  10. QuarkXPress 2018—图文设计排版布局工具