python 小说爬虫_用Python爬虫下载整本小说
1
/ 写在前面的话 /
如今网络上很多小说网站都有免费的小说阅读,但是它不提供下载全本的服务,目的也是为了获得更多的流量,资源君就不服了,今天刚好看到一个小说网站,就想弄本小说来看看,于是拿起电脑,噼里啪啦写了一个下载小说的Python代码,下面我来带大家读一读代码(具体的代码讲解我已经写在注释里了)!
2
/ 用爬虫来下载小说 /
1.首先第一步,导入两个我们需要的包# 用于获取网页的html
from urllib import request
# 用于解析html
from bs4 import BeautifulSoup
2. 我们来分析一下,我们要抓取的小说页面
(广告还挺显眼的)
我们看下这个界面然后再来看看html源码
我们会发现,我框住的地方正是我们所需要的地方,但是注意上面的最新章节和我们的正式的小说目录也就是下面的地方,他们都处于
然后再来看看小说阅读的界面:
这个界面就很简单了,我们来看看HTML源码:
很容易看到
标签中的正是每一章的标题,
标签中的也就是正文
OK,经过我们初步分析,我们可以开始写代码了!
3.首先我们写出获取网页html源码的一个方法:# 得到网页的html
def getHtml(url):
url = url
res = request.urlopen(url)
res = res.read().decode()
# print(res)
return res
这个方法传入一个url,会返回一个html源码
4.然后我们再来写一下,获取整本小说所有章节的链接的方法:# 解析小说章节页面,获取所有章节的子链接def jsoupUrl(html):
# 获取soup对象
url_xiaoshuo = BeautifulSoup(html)
# 因为我们要拿取class为box1中的div
class_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中的第二个参数是让每一次的字符串接连到上一个字符串,千万不能是w
with 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 时间序列预测_使用Python进行动手时间序列预测
python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...
- python 概率分布模型_使用python的概率模型进行公司估值
python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...
- python爬虫下载-用Python爬虫下载整本小说
1 / 写在前面的话 / 如今网络上很多小说网站都有免费的小说阅读,但是它不提供下载全本的服务,目的也是为了获得更多的流量,资源君就不服了,今天刚好看到一个小说网站,就想弄本小说来看看,于是拿起电脑, ...
- 用Python爬虫下载整本小说
1 / 写在前面的话 / 如今网络上很多小说网站都有免费的小说阅读,但是它不提供下载全本的服务,目的也是为了获得更多的流量,资源君就不服了,今天刚好看到一个小说网站,就想弄本小说来看看,于是拿起电 ...
- python简单网络爬虫_【Python】简单的网络爬虫
完整代码 # encoding:UTF-8 # from bs4 import BeautifulSoup import urlparse import urllib2 import re impor ...
- 一步一步学python爬虫_初学Python之爬虫的简单入门
初学Python之爬虫的简单入门 一.什么是爬虫? 1.简单介绍爬虫 爬虫的全称为网络爬虫,简称爬虫,别名有网络机器人,网络蜘蛛等等. 网络爬虫是一种自动获取网页内容的程序,为搜索引擎提供了重要的数据 ...
- 手机写python爬虫_可以写爬虫的那么多,为什么只有python火了?
网络爬虫: 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模 ...
- python应用市场app爬虫_【Python实战】Scrapy豌豆荚应用市场爬虫
对于给定的大量APP,如何爬取与之对应的(应用市场)分类.描述的信息?且看下面分解. 1. 页面分析 当我们在豌豆荚首页搜索框输入微信后,会跳转到搜索结果的页面,其url为http://www.wan ...
- python移动端爬虫_移动端爬虫工具与方法介绍
本文来自网易云社区 作者:王涛 本文主要介绍了移动端爬虫的工具与方法,作为一个入门的大纲.没有详细介绍的也给出了本人学习过程中借鉴的资料的链接,适合对移动端爬虫感兴趣的同学入门. 一.抓包模拟 基本原 ...
最新文章
- VC使用ActiveX控件常见问题
- 牵引力教育设计总监解密9大2018潮流UI设计趋向
- boost::interprocess::wmanaged_external_buffer用法的测试程序
- 防止NullPointerException,是程序员的基本修养
- 【状压DP】滚榜(P7519)
- LeetCode 475. 供暖器(双指针二分查找)
- linux怎样判断线程是否暂停_怎样判断股市是否会继续下跌?
- mysql插10万条数据_如何快速安全的插入千万条数据?
- kvm最小磁盘大于等于5G
- linux虚拟机能通显卡吗,英伟达 GeForce 游戏显卡正式支持虚拟机传递功能,可以完全调用...
- Mac 系统下 配置多个ssh-key (git sourcetree)
- 天涯百宝箱功能的js脚本--只看楼主
- python调用图灵机器人实现微信公众号的自动回复功能(下)
- 基于双流融合网络的遥感图像融合 论文笔记
- linux 根目录设置777,linux 把根目录设置成777权限的补救方法
- PCL-点云处理(一)
- qq飞车手游服务器找不到了,QQ飞车手游服务器拉取失败是怎么回事
- Ternary weight networks
- 新时达电梯服务器显示外呼错,干货:电梯报UCMP故障,其故障现象太怪异了……...
- 谷歌 Google Custom Search 站内搜索功能