首页 > 编程语言 >学会用Python爬取小说网站,想看什么就爬什么,广告也不用看了~

学会用Python爬取小说网站,想看什么就爬什么,广告也不用看了~

时间:2024-07-30 13:25:58浏览次数:16  
标签:info 章节 www biquge11 Python 爬取 cc 广告 https

今天以爬取笔趣阁小说网站为例,练习 Python 爬虫技术。

通过这个爬虫,可以完成批量爬取一本小说的所有章节,并将所有章节内容按顺序保存到一个 txt 文档内,下面我们就开始吧。

首先,百度搜索“笔趣阁”,发现有很多网站都叫笔趣阁。我们可以随便挑选一个网站尝试,本文我以‘https://www.biquge11.cc/’这个网站为例。

以爬取《斗破苍穹》这本热门小说为例,《斗破苍穹》是网络作家天蚕土豆所著的系列长篇玄幻小说,首次在 2009 年 4 月 14 日于起点中文网连载,于 2011 年 7 月 20 日完结。这本小说全文有 1600 多章节,大约 530 万字,如果这个都能顺利爬下来,换个别的小说爬也不在话下。

在网站内搜索《斗破苍穹》,我们来到了小说主页,网址是https://www.biquge11.cc/read/12972/

通过分析网页源代码,可以发现每个章节的网址都是https://www.biquge11.cc拼接上/read/12972/XXXX.html这种固定格式,也就是下面图片中红框内容,我们可以用正则表达式轻松拿下。

分析一下思路,我们可以:

第 1 步:用 requests 库请求https://www.biquge11.cc/read/12972/这个网址,将返回的网页信息转为text,再用re库的正则表达式取出每一章节的地址,放在一个info_lists列表里。

第 2 步:用 requests 库循环请求每个章节的地址,也就是 info_lists 列表的链接,获取每个章节的网页内容,并且用 re 库正则表达式取出小说的正文内容。

第 3 步:将第 2 步获取到的每章节的正文,进行换行处理,拼接写入到一个 txt 文件里。

这样,我们就能完整的爬取到一本小说的所有章节,并且保存到一个 txt 文档内。完整代码如下:

import requests   
import re         

headers = {       "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"}     

 if __name__ == '__main__':       
 #main_url是小说首页地址,切换成你想要爬的小说网页       
 main_url = 'https://www.biquge11.cc/read/12972/'       
 #发送请求       
 mainText = requests.get(main_url, headers = headers).text       
 info_lists = re.findall('<dd><a href ="(.*?)">(.*?)</a></dd>',mainText)      
  for info in info_lists:          
   url = 'https://www.biquge11.cc' +  info[0]              
   
   #获取数据           
   response = requests.get(url)           
   html_data = response.text              
   
   #解析数据           
   content = re.findall('<div id="chaptercontent" class="Readarea ReadAjax_content">(.*?)<br /><br />  请收藏本站:https://www.biquge11.cc。笔趣阁手机版:https://m.biquge11.cc <br /><br />',html_data)[0]        
   #替换换行符           
   text ='\n\n' + info[1] + '\n\n'           
   text+= content.replace("<br /><br />", '\n')           
   print("正在获取" + info[1] + url)           
   #保存到文件          
    f = open('斗破苍穹.txt',mode='a',encoding='utf-8')           
    f.write(text)            

爬取过程 pycharm 控制台输出如下:

结果,我们顺利爬取了《斗破苍穹》这本小说,保存为斗破苍穹.txt 文档,这个 txt 文档 15.3MB。

在这里插入图片描述

END

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后这里免费分享给大家一份Python全套学习资料,希望能给想学习 Python 的小伙伴们一点帮助!

有编程资料、学习路线图、源代码、软件安装包等!文末免费领取
在这里插入图片描述
这份完整版的Python全套学习资料已经上传,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

在这里插入图片描述

标签:info,章节,www,biquge11,Python,爬取,cc,广告,https
From: https://blog.csdn.net/m0_62283350/article/details/140792320

相关文章

  • 计算机毕业设计django+vue《Python数据分析》的教学系统【开题+论文+程序】
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在当今数字化时代,数据分析已成为各行各业不可或缺的技能之一,而Python作为数据分析领域的首选语言,其重要性日益凸显。然而,传统的教学模式在......
  • 如何将多个变量分配给 python 函数中的单个参数?
    我正在尝试编写一个程序,如果可能的话,它需要一个三项式并对其进行因式分解。每当用户输入A、B和C时,三项式应该通过Factor(product,summation)函数获取,但我似乎无法弄清楚如何将A和C分配给乘积arg,将B分配给我尝试在函数外部声明不同的变量,product=(a*c)和summati......
  • python - 从文本生成音乐
    请给我一些建议为了解释一下,我输入“深度睡眠的睡眠音乐”,它将返回一个wav文件:https://www.youtube.com/watch?v=1wAdQhFJy54或者我给出一个wav文件,它会返回相同的现在这是我尝试过的:https://github.com/facebookresearch/audiocraft......
  • 从零开始的Python开发日记(7):短信验证功能开发流程
    短信验证功能开发流程在开发一个包含登录、注册以及短信验证的功能时,你需要遵循一个系统的开发流程。以下是实现这一功能的基本步骤,包括所需的技术和代码示例。1.环境配置首先,确保你的开发环境已经配置好,并安装了必要的库和工具。pipinstallfastapiuvicornsqlalche......
  • 【Python数值分析】革命:引领【数学建模】新时代的插值与拟合前沿技术
    目录​编辑第一部分:插值的基本原理及应用1.插值的基本原理1.1插值多项式1.2拉格朗日插值 1.3牛顿插值 1.4样条插值2.插值的Python实现2.1使用NumPy进行插值2.2使用SciPy进行插值2.2.1一维插值​编辑2.2.2二维插值3.插值的应用场景3.1数据平......
  • 在家用电脑上设置 Python 和 Jupyter,尝试打开 Jupyter 笔记本并显示错误,无法获取
    我有最新的Python版本3.12.4和以下版本的Jupyter:SelectedJupytercorepackages...IPython:8.26.0ipykernel:6.29.5ipywidgets:notinstalledjupyter_client:8.6.2jupyter_core:5.7.2jupyter_server:2.14.2jupyterlab......
  • Python - Reloading a module
    Eachmoduleisloadedintomemoryonlyonceduringaninterpretersessionorduringaprogramrun,regardlessofthenumberoftimesitisimportedintoaprogram.Ifmultipleimportsoccur,themodule’scodewillnotbeexecutedagainandagain.Suppose......
  • vscode python 3.7 pylance debugpy 插件 vsix
    可能报错  crashed5timesinthelast3minutes.Theserverwillnotberestarted.  ---pylance 可能报错  cannotreadpropertiesofundefinedreadingresolveEnvironment   --- debugger可能      vscodepython3.7调试没有反应......
  • Python获取秒级时间戳与毫秒级时间戳的方法[通俗易懂]
    参考资料:https://cloud.tencent.com/developer/article/21581481、获取秒级时间戳与毫秒级时间戳、微秒级时间戳代码语言:javascript复制importtimeimportdatetimet=time.time()print(t)#原始时间数据print(int(t))......
  • CEFPython
    在Tkinter界面中直接嵌入Selenium的浏览器视图并不是一件直接的事情,因为Selenium本身并不提供图形界面嵌入的功能。Selenium主要用于自动化web浏览器,但它并不直接控制浏览器窗口的显示方式,而是依赖于WebDriver来与浏览器交互。然而,你可以使用一些替代方案来在Tkinter应用中模拟或......