前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用python爬取全站小说,你想看的都爬取下来!

用python爬取全站小说,你想看的都爬取下来!

作者头像
Python与Excel之交
发布2021-08-05 14:30:27
4.2K0
发布2021-08-05 14:30:27
举报
文章被收录于专栏:Python与Excel之交

本文图片以及文本仅供学习、交流使用,不做商业用途,如有问题请及时联系我们以作处理。

前言

小说,宅男必备,也是当今社会人们打发时间的一种方式。今天教大家爬取新笔趣阁小说网,获取网站小说数据,保存为对应的txt文件。

分析网页

新笔趣阁网址:

代码语言:javascript
复制
https://www.xxbqg5200.com/

看下网站首页:

随便点进一本小说:

代码语言:javascript
复制
https://www.xxbqg5200.com/shu/421/

章节链接和章节标题都在网页源代码中:

点进去第一章,我们看下源代码,发现我们需要爬取的内容也都在网页源代码中,这就很方便我们爬取了。

爬取思路:

  • 向小说链接发送请求 - 获取小说章节链接
  • 向小说章节链接发送请求 - 获取章节文本内容
  • 以小说章节标题为名保存小说文本内容

实战代码

导入需要用到的模块:

代码语言:javascript
复制
import requests
import re
import time

伪装请求头:

代码语言:javascript
复制
headers = {
        'User-Agent':'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; LBBROWSER)'
    }

发送请求,获取响应,网页会发生编码错误,所以要进行解码:

代码语言:javascript
复制
resposn = requests.get(url='https://www.xxbqg5200.com/shu/421/', headers=headers)
resposn.encoding = resposn.apparent_encoding

用正则表达式提取小说章节链接:

代码语言:javascript
复制
url_list = re.findall('<dd><a href="(.*?)">.*?</a></dd>', resposn.text)

爬取的章节链接并不完整,所以需要循环取出章节链接,然后对链接进行拼接成完整链接,接着继续发送请求。

代码语言:javascript
复制
for url in url_list:
    url = 'https://www.xxbqg5200.com/' + url
    res = requests.get(url=url, headers=headers)
    res.encoding = res.apparent_encoding
    html = res.text

提取标题:

代码语言:javascript
复制
title = re.findall('<h1>(.*?)</h1>', html)[0]

文本内容主要保存在一个div标签中,这里用re.S忽略一些多余的空行之类的,然后用replace清除一些多余的符号:

代码语言:javascript
复制
text = re.findall('<div id="content">(.*?)</div>', html, re.S)[0]
data_text = text.replace('&nbsp;', '').replace('<br />', '')

保存小说文本内容:

代码语言:javascript
复制
with open('./杀神/{}.txt'.format(title), mode='w', encoding='utf-8', newline="") as f:
        f.write(title + '\n')
        f.write(data_text)
        f.close()

小结

1、本文基于Python,利用python爬虫模块,实现爬取小说数据并保存下来。

2、本文代码较少,但不够完美,未使用面向过程方法构写,而且爬取速度较慢。

3、如果需要爬取整站小说,可以通过网站首页网址,然后获取一本本小说的链接,接着继续套娃。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python与Excel之交 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 分析网页
  • 实战代码
  • 小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档