用Python爬虫下载整本小说
1
/ 写在前面的话 /
如今网络上很多小说网站都有免费的小说阅读,但是它不提供下载全本的服务,目的也是为了获得更多的流量,资源君就不服了,今天刚好看到一个小说网站,就想弄本小说来看看,于是拿起电脑,噼里啪啦写了一个下载小说的Python代码,下面我来带大家读一读代码(具体的代码讲解我已经写在注释里了)!
2
/ 用爬虫来下载小说 /
1.首先第一步,导入两个我们需要的包
# 用于获取网页的html
from urllib import request
# 用于解析html
from bs4 import BeautifulSoup
2. 我们来分析一下,我们要抓取的小说页面
(广告还挺显眼的)
我们看下这个界面然后再来看看html源码
我们会发现,我框住的地方正是我们所需要的地方,但是注意上面的最新章节和我们的正式的小说目录也就是下面的地方,他们都处于<div class='box1'>中,待会大家可以看看我是怎么处理的。
然后再来看看小说阅读的界面:
这个界面就很简单了,我们来看看HTML源码:
很容易看到<h1>标签中的正是每一章的标题,<p>标签中的也就是正文
OK,经过我们初步分析,我们可以开始写代码了!
3.首先我们写出获取网页html源码的一个方法:
# 得到网页的html
def getHtml(url):url = urlres = request.urlopen(url)res = res.read().decode()# print(res)return res
这个方法传入一个url,会返回一个html源码
4.然后我们再来写一下,获取整本小说所有章节的链接的方法:
# 解析小说章节页面,获取所有章节的子链接def jsoupUrl(html):# 获取soup对象url_xiaoshuo = BeautifulSoup(html)# 因为我们要拿取class为box1中的divclass_dict = {'class': 'box1'}url_xiaoshuo = url_xiaoshuo.find_all('div', attrs=class_dict)# 因为分析html中的代码可以发现div的class为box1的有两个,通过上面的代码返回的是一个list格式的结果,所以下面的索引应该是1# 我们要获取li中的值,所以find_all,这个方法返回的是一个list集合url_xiaoshuo = url_xiaoshuo[1].find_all('li')# print(url_xiaoshuo)# 创建一个集合,用于存放每个章节的链接url_xs = []for item in url_xiaoshuo:# 获取每个元素中的href值url = item.a['href']# 将值传入url_xs集合中url_xs.append(url)return url_xs
具体的解释,我已经写在注释里了,不懂的可以在公众号后台留言
5.我们获取到每个章节的链接之后,我们就需要把每一章节的内容给弄下来并且把它写入到txt文本而且每个文本的标题为章节的标题
# 解析小说每个章节的的主要内容
def jsoupXiaoshuo(list):for item in list:html = getHtml(item)html = BeautifulSoup(html)# 获取小说标题title = html.h1.get_text()xiaoshuo = html.find_all('p')for item in xiaoshuo:str = item.get_text()# open中的第二个参数是让每一次的字符串接连到上一个字符串,千万不能是wwith open(title + '.txt', 'a') as f:f.write(str+'\n')
6.最后我们再main方法中运行这几个方法即可:
if __name__ == '__main__':html = getHtml("http://www.136book.com/dadaozhaotian/")url_xs = jsoupUrl(html)jsoupXiaoshuo(url_xs)
运行出来的结果:
大功告成!
不懂的可以在公众号后台留言,我全部都会回复的哦!
点击下方“阅读原文”查看完整代码
↓↓↓
用Python爬虫下载整本小说相关推荐
- python爬虫下载-用Python爬虫下载整本小说
1 / 写在前面的话 / 如今网络上很多小说网站都有免费的小说阅读,但是它不提供下载全本的服务,目的也是为了获得更多的流量,资源君就不服了,今天刚好看到一个小说网站,就想弄本小说来看看,于是拿起电脑, ...
- python 小说爬虫_用Python爬虫下载整本小说
1 / 写在前面的话 / 如今网络上很多小说网站都有免费的小说阅读,但是它不提供下载全本的服务,目的也是为了获得更多的流量,资源君就不服了,今天刚好看到一个小说网站,就想弄本小说来看看,于是拿起电脑, ...
- 初次尝试python爬虫,爬取小说网站的小说。
本次是小阿鹏,第一次通过python爬虫去爬一个小说网站的小说. 下面直接上菜. 1.首先我需要导入相应的包,这里我采用了第三方模块的架包,requests.requests是python实现的简单易 ...
- python 爬虫下载网易歌单歌曲
python 爬虫下载网易歌单歌曲 可以根据歌单 id 来下载歌单中的所有音乐,付费音乐除外 可以自己输入歌单 id 来进行单个歌单下载,也可以结合上一篇文章 爬取网易云音乐所有歌单信息 先取到所有的 ...
- Python爬虫——下载音乐
Python爬虫--下载音乐 1.调用需要库 安装库: Windows + R 输入cmd 后 执行下面这两行 pip install requests -i https://pypi.tuna.ts ...
- python爬虫 下载视频网站视频
python爬虫 下载视频网站视频 xpath解析页面源码 requests.Session() 解决 status_code 302 网页重定向 selenium 获取网页遇到 iframe 标签解 ...
- python爬虫下载王者荣耀图片
python爬虫下载王者荣耀图片 腾讯课堂白嫖的一堂课,大佬勿喷. import requests import jsondata = requests.get('http://pvp.qq.com/ ...
- Python爬虫--笔趣阁小说爬取
Python爬虫–笔趣阁小说爬取 爬虫用到的插件 import requests from lxml import etree 小说目录页 以小说"我有百万技能点"为例,在笔趣阁搜 ...
- Python爬虫下载王者荣耀全皮肤
python爬虫下载王者荣耀全皮肤 import requests import os from time import timestart = time() headers = {'User-Age ...
最新文章
- 计算机组成原理 — CPU — 指令集架构类型
- Juniper 重置设备到出厂缺省设置
- java获取执行时间
- C语言 · 约数个数
- 传统金融PK互联网 必须透过现象看本质
- ASP中利用OWC控件实现图表功能详解[zz]
- c语言中小数在内存中的存储,c语言中小数在内存中的存储
- 如何设置(样式渐变)transition
- 201671010135 《面向对象程序设计课程学习进度条》
- java1.7环境_java1.7环境变量设置
- wc 统计文件字节数、字符数、单词数
- windows 2003 iis php,windows 2003 iis安装php 5.2版本步骤
- 啦啦外卖小程序公众号定位中的问题解决方法
- 基于H5的实时语音聊天
- web前端课程设计:个人博客网站设计——个人博客(6页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 web前端设计与开发期末作品
- 天气实况、天气预报、免费天气接口、空气质量各类天气数据、生活指数、气候数据雷达云图等值面...
- CCF CSP 202009-3 点亮数字人生
- 学Python运维,这知识点你肯定会遇到,【必收藏之】nginx 域名跳转相关配置
- 使用WinWedge软件记录satorius天平的数据(记录)
- 步进电机驱动控制总结(一)
热门文章
- Hbase之陌陌海量存储案例
- UGNX12.0初始化奔溃,初始化错误(-15)
- Jetson nano无法开机,出现cp:not writing throught dangling symlink ‘etc/resolv.conf‘
- 程序员护眼不是你想象的那样
- java中scanner怎么导入_java怎么导入scanner
- 2020 WAIC微软论坛 部分摘选
- 招商银行掌上生活还款服务个人信息处理授权书
- webpack 如何优雅的使用tree-shaking(摇树优化)
- 传统汽车保险丝盒与智能保险丝盒Efuse的应用
- [SHOI2014]概率充电器 dp