本人喜欢看网络小说,于是根据网上的教程做了一个简陋的爬虫程序
1.本人选取的网站是笔趣阁-无弹窗小说网,全文免费阅读 (bigee.cc)
https://www.bigee.cc/
2.选取的示例是当我写了个BUG却变成核心玩法(青衫取醉) 最新章节 无弹窗 全文免费阅读 - 笔趣阁 (bigee.cc)
https://www.bigee.cc/book/168458/
选取第一章
当我写了个BUG却变成核心玩法_第1章 地狱恶魔也要做游戏_笔趣阁 (bigee.cc)
https://www.bigee.cc/book/168458/1.html
3.需要引入requests和re库
4.刚开始的代码:
print一下response,在其中找到这类形式:
<dd><a href ="/book/168458/1.html">第1章 地狱恶魔也要做游戏</a></dd>
5.用正则表达式匹配:
6.print一下responses,得到这样的形式:
[('/book/168458/1.html', '第1章 地狱恶魔也要做游戏'), ('/book/168458/2.html', '第2章 前所未有的FPS游戏体验!'), ('/book/168458/3.html', '第3章 前职业选手打不过第一个小怪!'), ('/book/168458/4.html', '第4章 换联网模式看看?')......]
(注:此处省略号为省略)
于是做个遍历,用i来提取出元组:
7.同理,print一下respond,再用正则表达式匹配:
8.发现匹配文本中有广告:
请收藏本站:https://www.bigee.cc。笔趣阁手机版:https://m.bigee.cc <br /><br />
9.去除广告:
10.保存文本:
11.查看文本发现没有换行,用正则再替换一下:
12.完整代码:
代码中的print只是为了方便观察代码运行。推荐大家定义变量时,变量不要同名,会容易出bug。
每个小说网的源码各不相同,大家还需具体情况具体分析
总思路:
get一个url
正则匹配
保存文本
本程序只用了两个库,尽量减少了大家的学习成本
每次只能从头开始下载,有什么方法可以从上次下载的地方继续呢,os.listdir可能有用
14.注意:————恶魔契约书————<br /><br />甲方(用人单位)<br /><br />单位名称地狱驻人间负面情绪集办公室<br /><br />法定代表人(主要负责人)莉莉丝<br /><br />
因为文本中每个段落有两个<br />,如果直接替换成换行符会产生下列情况
所以要加下列代码
15.故真完整代码为:
本人只是菜鸟,若有改进方法,还望多多赐教
16.参考链接:
正则里的(.*?)是什么意思_正则表达式中.*?-CSDN博客
Python如何将数据保存为txt文件_python保存txt-CSDN博客
各大浏览器UserAgent总结(超全)-腾讯云开发者社区-腾讯云 (tencent.com)
re.sub()用法的详细介绍-CSDN博客
Python 正则表达re模块之findall()详解_re.findall(-CSDN博客
【Python 】:Requests库安装和使用教程(非常详细)_pip install requests-CSDN博客
超简单的爬虫教程:从零爬取小说网站_哔哩哔哩_bilibili
Python 正则表达式 re.sub()_python re.sub-CSDN博客