Python爬取全书网小说全文——正则表达式的应用
1. 引言
各位读者新年好,今天给大家带来的案例是爬取全书网小说全文,主要用到了正则表达式。我们知道,正则表达式一般用来进行格式化的精确匹配,用来爬取多文本的内容非常方便。本次采用面向过程的方法,理解起来较为简单。
2. 代码实现过程
首先进入全书网(网址:https://www.xs4.cc/),随便选一篇小说,比如这个《我在古代日本当剑豪》这一偏小说。点进去之后可以看到已经更新到352章了。
接下来就是正式爬取的过程了,总共分为五个步骤:
- 1 获取小说列表页面源代码
- 2 获取每章的URL
- 3 获取每章的HTML
- 4 通过正则表达式去匹配小说内容
- 5 处理小说内容,并保存
#首先导入需要用到的模块
import requests
import re
import time
import os#定义抓取函数
def get_book_content():"""爬取小说"""header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.92 Safari/537.36'}#1.获取小说列表页面源代码burl = 'https://www.xs4.cc/14_14983/'response = requests.get(burl,headers=header)response.encoding = 'gbk'html = response.texttitle = re.findall(r'<h1>(.*?)</h1>', html)[0]if not os.path.exists(title):os.mkdir(title)reg = r'<dd><a href="(.*?)">(.*?)</a></dd>'urls = re.findall(reg, html)i = 1for url in urls[9:]: #跳过前面的介绍更新章节#2.获取每章的URLnovel_url0, novel_name = urlnovel_url = 'https://www.xs4.cc' + novel_url0#3.获取每章的HTMLchapt = requests.get(novel_url)chapt.encoding = 'gbk'chapt_html = chapt.text #4.通过正则表达式去匹配小说内容reg = r'<div id="content"> (.*?)</div>'chapt_content = re.findall(reg, chapt_html, re.S)#5.处理小说内容,并保存chapt_content = chapt_content[0].replace(' ', "")chapt_content = chapt_content.replace('<br />', "")print("正在保存 %s" % novel_name)time.sleep(1) #每次抓取后停顿一秒钟,防止被识别为爬虫,被禁用file_path = title + '/' + novel_name + '.txt'with open(file_path, 'w') as f:f.write(chapt_content)i += 1if __name__ == '__main__':get_book_content()
代码执行后,结果如下:
打开保存的文件夹:
随意打开一个文件,可以看到小说已经完美的被爬下来啦。
So,你学会了吗?欢迎关注微信公众号“爬取你的深度神经网络”获取源代码和更多精彩文章。
Python爬取全书网小说全文——正则表达式的应用相关推荐
- python爬取全书网小说
做一个爬取小说的爬虫,使用 requests 和 bs4 具体代码如下 # _*_ utf-8 _*_ import requests import random from bs4 import Be ...
- scrapy实现爬取全书网小说到Mysql数据库(附代码)
前言 本篇文章实现python的scrapy框架爬取全书网小说,scrapy框架的安装我在这里就不在赘述了,建议window用户使用anaconda安装,这里比较省心一些.运行环境python3(实际 ...
- 爬虫入门(四)——Scrapy框架入门:使用Scrapy框架爬取全书网小说数据
为了入门scrapy框架,昨天写了一个爬取静态小说网站的小程序 下面我们尝试爬取全书网中网游动漫类小说的书籍信息. 一.准备阶段 明确一下爬虫页面分析的思路: 对于书籍列表页:我们需要知道打开单本书籍 ...
- 【Python】手把手教你用Python爬取某网小说数据,并进行可视化分析
网络文学是以互联网为展示平台和传播媒介,借助相关互联网手段来表现文学作品及含有一部分文字作品的网络技术产品,在当前成为一种新兴的文学现象,并快速兴起,各种网络小说也是层出不穷,今天我们使用seleni ...
- Python爬虫 | 爬取全书网小说斗罗大陆
网络爬虫:可以理解成网页蜘蛛,在网页上采集数据 爬取流程: 1.导入模块 2.打开网页,获取原码 3.获取章节原码 4.获取正文 5.过滤'杂质' 6.保存下载 废话不多说开始爬!!! 今天爬的网站是 ...
- python爬取当当网商品评论
python爬取当当网商品评论 本案例获取某鞋评论作为例 案例目的: 通过爬取当当网商品评价,介绍通过结合jsonpath和正则表达式获取目标数据的方法. 代码功能: 输入爬取的页数,自动下载保存每页 ...
- Python 爬取起点的小说(非vip)
Python 爬取起点的小说(非vip) 起点小说网是一个小说种类比较全面的网站,当然,作为收费类网站,VIP类的小说也很多,章节是VIP的话,有一个动态加载,也就 ...
- 在当当买了python怎么下载源代码-Python爬取当当网最受欢迎的 500 本书
想看好书?想知道哪些书比较多人推荐,最好的方式就是看数据,接下来用 Python 爬取当当网五星图书榜 TOP500 的书籍,或许能给我们参考参考! Python爬取目标 爬取当当网前500本受欢迎的 ...
- Python爬取书包网文章实战总结
python爬取书包网文章总结 今天闲来无事去看小说,但是发现没办法直接下载,所以呢就用python爬虫来下载一波了,哈哈- 爬取的是这篇小说:剑破九天(是不是很霸气,话不多说,开始-) 总体思路步骤 ...
最新文章
- 【图论专题】拓扑排序
- 超硬核的 Python 数据可视化教程
- 线程池的一些疑问和解答
- 云上的精准医疗——公有云、私有云案例分析和比较
- CG CTF WEB SQL Injection
- python是属于it界吗_转行IT行业,Python是不是一个好的选择?
- AVL Insertion(浙大pta)
- SQL基础:数据表的创建
- spark数据本地性级别划分
- HTML5_05之SVG扩展、地理定位、拖放
- 苹果手机显示iphone已停用连接itunes_iTunes备份道理我都懂,但我依然不想备份的?...
- 【总目录】机器学习原理剖析、开源实战项目、全套学习指南(50篇合集)
- js 新年倒计时 代码
- linux使用grep查找文件内容,linux如何使用grep命令查找文件内容
- 量子计算机模拟黑洞纠缠,科学家想用量子纠缠探查黑洞内部?那得先找到自旋方向相反的光子...
- 郭天祥的10天学会51单片机_第五节
- window10 安装Java11 并可以和Java8进行自由切换
- ttk progress bar的显示
- mysql函数 动态语句_自定义函数动态执行SQL语句
- 大阪第14天——韩寒同学语录