如何利用Python爬虫爬取小说网站并保存到txt文件
本人特别爱看网络小说,但是呢,有些小说网站的弹窗广告啊、悬浮广告太烦人,正好最近在研究Python,就来试试利用Python把小说站的小说爬下来,并保存到txt文件里。这样就可以直接使用手机打开txt来看了。并且呢,我也能熟悉利用python抓取文本数据的方法。
以爬取靠谱小说网的《伏天氏》这本小说的章节内容为例,目标url:http://www.kpxsw.com/0_479.html
第一步:选取文章列表其中某一章,检查网页,可以找到这本小说所有章节的链接和名称。
写出xpath表达式提取出href里的内容://div[@id=“list”]/dl/dd/a/@href
分析网页可得,提取出来的内容里每个元素前面应加上 http://www.kpxsw.com 得到的才是是每个章节真正的链接
第二步:接下来编写抓取章节的代码,抓取所有章节的链接,代码如下:
def get_urls():url = "http://www.kpxsw.com/0_479.html"response = requests.get(url, headers=headers)response.encoding = 'utf-8'html = etree.HTML(response.text)# 所有章节的url列表url_list = ['http://www.kpxsw.com' + x for x in html.xpath('//div[@id="list"]/dl/dd/a/@href')]return url_list
第三步:抓取每章的章节名称和章节内容,保存到txt文件,具体代码如下:
def get_text(url):rep = requests.get(url, headers=headers)rep.encoding = 'utf-8'dom = etree.HTML(rep.text)name = dom.xpath('//div[@class="bookname"]/h1/text()')[0]text = dom.xpath('//div[@id="content"]/text()')with open(path + f'{name}.txt', 'w', encoding='utf-8') as f:for con in text:f.write(con)print(f'{name} 下载完成')
OK,通过上面三步,就利用Phthon抓取《伏天氏》小说,并保存txt文件成功。你也可以通过此方法在靠谱小说网http://www.kpxsw.com 抓取其他小说,保存成txt文件来看。
完整代码如下:
import requests
from lxml import etree
import time
import randompath = r'D:\test\伏天氏\ '
headers = {"Referer": "http://www.kpxsw.com/0_479.html","User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1"
}def get_urls():url = "http://www.kpxsw.com/0_479.html"response = requests.get(url, headers=headers)response.encoding = 'utf-8'html = etree.HTML(response.text)# 所有章节的url列表url_list = ['http://www.kpxsw.com' + x for x in html.xpath('//div[@id="list"]/dl/dd/a/@href')]return url_listdef get_text(url):rep = requests.get(url, headers=headers)rep.encoding = 'utf-8'dom = etree.HTML(rep.text)name = dom.xpath('//div[@class="bookname"]/h1/text()')[0]text = dom.xpath('//div[@id="content"]/text()')with open(path + f'{name}.txt', 'w', encoding='utf-8') as f:for con in text:f.write(con)print(f'{name} 下载完成')def main():urls = get_urls()for url in urls:get_text(url)time.sleep(random.randint(1, 3))if __name__ == '__main__':main()
运行程序后,抓取结果如下:
如何利用Python爬虫爬取小说网站并保存到txt文件相关推荐
- python爬虫: 爬取boss网站数据 保存到mysql
爬取boss数据并保存到mysql boss的反爬虫控制尤其恶心 cookies大概用3次左右就不能用了 所以爬取不了太多东西 只可用来学习 等学习完逆向爬虫课程 再来挑战挑战 example.py ...
- python爬虫爬取小说网站并转换为语音文件
前言 作为一个技术宅,本着为眼睛着想的角度考虑,能少看屏幕就尽量少看屏幕,可是又是一个小说迷,那就开动脑筋爬一下小说转换成语音来听书吧 第一章:爬取小说文件 把目标定在小说存储量比较大的网站:起点中文 ...
- 利用Python爬虫抓取小说网站全部文章
我们先来选定爬取目标,我爬取的网站是https://www.17k.com/ ,一些大型的网站(如起点.豆瓣等)做了反爬虫的部署,这会大大增加我们抓取的难度,所以尽量还是选一些不那么热门的网站. 爬虫 ...
- python 小说cms系统_「博文小说网」Python爬虫爬取小说网站 - seo实验室
博文小说网 #!/usr/bin/env Python # -*- coding: utf-8 -*- # @Author : Woolei # @File : book136_singleproce ...
- python 爬取HTML内容并保存到txt文件内
# @UpdateTime : 2020-12-08 16:53 # @Author : wz # @File : Get_WebDetails # @Software: PyCharm # @use ...
- python selenium登录企名片,筛选各种条件,爬虫爬取融资信息,保存到csv文件
要点:1.利用datatime构建 日期,设定格式 2.利用selenium 登录账号,input等待需要输入的验证码 3.可以利用scrapy的Selector,替代beautifysoup 得到想 ...
- 【爬虫】利用Python爬虫爬取小麦苗itpub博客的所有文章的连接地址并写入Excel中(2)...
[爬虫]利用Python爬虫爬取小麦苗itpub博客的所有文章的连接地址并写入Excel中(2) 第一篇( http://blog.itpub.net/26736162/viewspace-22865 ...
- python爬网站数据实例-利用Python爬虫爬取NBA数据功能实例分享
Python实现爬虫爬取NBA数据功能示例 本文实例讲述了Python实现爬虫爬取NBA数据功能.分享给大家供大家参考,具体如下: 爬取的网站为:stat-nba.com,这里爬取的是NBA2016- ...
- Python爬虫—爬取小说名著
周末闲来无事,本来想看一看书的,结果也没看进去(RNG输的我真是糟心...) 于是就用python写了一个爬虫,来爬取小说来看,防止下次还要去网上找书看. 我们先找一个看名著的小说网 我们打开http ...
- 利用Python爬虫爬取网页福利图片
最近几天,学习了爬虫算法,通过参考书籍,写下自己简单爬虫项目: 爬取某福利网站的影片海报图片 环境:anaconda3.5+spyder3.2.6 目录 1.本节目标 2.准备工作 3.抓取分析 4. ...
最新文章
- 什么是初效过滤器_聊聊中效过滤器的哪些事?
- html 图片 保持长宽比,实现图片在页面中宽高一直保持16:9比例的方法
- 【每日一题】7月13日题目精讲—Kingdom
- Oracle 练习P297 131026 PL/SQL块程序
- As-Conformal-As-Possible Surface Registration
- 基于ASP.NET AJAX的WebPart开发与部署
- ubuntu搭建xv6环境
- eviews建立时间序列模型_Eviews软件做时间序列分析?
- 暴力猴插件的安装及使用
- Opengl ES Glew库 ----- By YDD的铁皮锅
- 汇编中 rep指令 和 stos指令ollydbg图解
- pad 锁定屏幕显示方向为竖屏正方向
- java浪漫代码_程序员表白代码,用过的人都找到了对象...
- 华为css与堆叠,华为堆叠配置
- ROC:Receiver operating characteristic Curve接受者操作特征的理解
- 扫描格式的pdf文件怎样进行识别
- Windows 11打印测试页
- GEA 4.1234 矩阵 矢量 点 四元数
- Linux运维与架构工程实践
- 基于Hyper-V、centos、搭建宝塔Linux结合gitLab实现前端自动化部署