当前位置: 首页 > news >正文

手写一个摸鱼神器:使用python手写一个看小说的脚本,在ide中输出小说内容,同事直呼“还得是你”

文章目录

  • 一、准备python环境
  • 二、分析小说网的章节目录
  • 三、分析小说网的章节内容
  • 四、编写python脚本
  • 五、验证一下吧

一、准备python环境

windows从0搭建python3开发环境与开发工具

Python爬虫基础(一):urllib库的使用详解
Python爬虫基础(二):使用xpath与jsonpath解析爬取的数据

二、分析小说网的章节目录

最近迷上了《史上最全炼气期》,我们以这一部小说为例:
小说章节列表:http://www.yetianlian.cc/yt4017/

在这里插入图片描述
我们可以爬取关键信息:章节名和章节的url,遍历章节名,通过章节的url即可获取每一章的内容!

三、分析小说网的章节内容

在这里插入图片描述
每一章的内容,也可以很轻松的得到。

接下来就是编码了。

四、编写python脚本

import urllib.request
from lxml import etreedef create_request(url):'''构造请求request'''headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36',}request = urllib.request.Request(url = url, headers = headers)return requestdef get_content(request):'''得到响应内容'''response = urllib.request.urlopen(request)content = response.read().decode('utf-8')return contentif __name__ == '__main__':# 获取所有章节base_url = 'http://www.yetianlian.cc/yt4017/'request = create_request(base_url) content = get_content(request)base_tree = etree.HTML(content)# 章节名name_list = base_tree.xpath('//div[@class="listmain"]/dl/dd/a/text()')# 章节地址url_list = base_tree.xpath('//div[@class="listmain"]/dl/dd/a/@href')# 定位到从哪一章开始读key = input('请输入要阅读的章节:')begin = 0for i in range(0, len(name_list)-1):if(key in name_list[i]):begin = ifor i in range(begin, len(name_list)-1):input('章节名---------------------->' + name_list[i])# 获取具体哪一章的内容url = 'http://www.yetianlian.cc' + url_list[i]request = create_request(url) content = get_content(request)tree = etree.HTML(content)# 获取小说的内容result = tree.xpath('//div[@id="content"]/text()')# 遍历内容for res in result:input(res)print('-------------->end')

五、验证一下吧

我们随便使用一个ide,在下面打开命令行,执行命令,执行脚本:

python story.py

然后输入要阅读的章节,不断的按回车键,就可以一直刷出内容了!是不是摸鱼神器~
在这里插入图片描述

http://www.lryc.cn/news/164321.html

相关文章:

  • 【Python 实战】---- 实现批量图片的切割
  • MAYA粒子基础_场
  • 趣解设计模式之《我买了宝马,为啥不让我停这?》
  • MyBatis Plus 中 LocalDateTime 引发的一些问题和解决办法
  • 谁懂啊!自制的科普安全手册居然火了
  • 强化学习-论文调研-泛化性能力度量
  • CSS中图片旋转超出父元素解决办法
  • QML、C++ 和 JS 三者之间的交互
  • ProEasy机器人:TCP无协议通讯(socket通讯)时打印log日志
  • 算法通过村第六关-树白银笔记|层次遍历
  • SpringCloud理解篇
  • 编写LED灯的驱动,实现三盏灯的控制
  • Flink报错处理-1
  • bim与数字孪生智能建造的关系
  • 【Linux】进程篇(补):守护进程
  • SpringMVC自定义视图完成步骤 和 视图解析的源码剖析
  • 合宙Air724UG LuatOS-Air lvgl字库
  • C#,数值计算——指数微分(exponential deviates)的计算方法与源程序
  • ADAS自动驾驶
  • Python从零到一构建项目
  • 使用todesk或者向日葵远程Ubuntu22.04系统的客户机黑屏
  • JBoss JMXInvokerServlet 反序列化漏洞复现(CVE-2015-7501)
  • 比Mojo慢68000倍,Python性能差的锅该给GIL吗?
  • CSS读书笔记
  • Qt使用QSqlDatabase remoeDatabase()连接提示仍在使用解决方案
  • 管易云与金蝶云星空对接集成仓库查询打通仓库新增
  • ubuntu 安装 Mongodb 4.0、4.2、4.4
  • 详解Hugging Face Transformers的TrainingArguments
  • 【LeetCode-中等题】17. 电话号码的字母组合
  • 读高性能MySQL(第4版)笔记06_优化数据类型(上)