用python60行代码写一个简单的笔趣阁爬虫!三分一章?
前言
利用python写一个简单的笔趣阁爬虫,根据输入的小说网址爬取整个小说并保存到txt文件。爬虫用到了BeautifulSoup库的select方法 结果如图所示:
本文只用于学习爬虫
一、网页解析
这里以斗罗大陆小说为例 网址: http://www.biquge001.com/Book/2/2486/
可以发现每章的网页地址和章节名都放在了 <"div id=list dl dd a>中的a标签中,所以利用BeautfulSoup中的select方法可以得到网址和章节名
Tag = BeautifulSoup(getHtmlText(url), "html.parser") #这里的getHtmlText是自己写的获取html的方法 urls = Tag.select("div #list dl dd a")
然后遍历列表
for url in urls:href = "http://www.biquge001.com/" + url['href'] # 字符串的拼接 拼接成正确的网址pageName = url.text # 每章的章名
然后每章小说的内容都存放在<div id=“content” 里 同理得
substance = Tag.select("div #content") # 文章的内容
最后同理在首页获取小说的名称 <"div id = info h1>
bookName = Tag.select("div #info h1")
二、代码填写
1.获取Html及写入方法
def getHtmlText(url):r = requests.get(url, headers=headers)r.encoding = r.apparent_encoding # 编码转换r.raise_for_status()return r.textdef writeIntoTxt(filename, content):with open(filename, "w", encoding="utf-8") as f:f.write(content)f.close()print(filename + "已完成")
2.其余代码
代码如下(示例):
url = "http://www.biquge001.com/Book/2/2486/" substanceStr = "" bookName1 = "" html = getHtmlText(url) # 判断是否存在这个文件 Tag = BeautifulSoup(getHtmlText(url), "html.parser") urls = Tag.select("div #list dl dd a") bookName = Tag.select("div #info h1") for i in bookName:bookName1 = i.text if not os.path.exists(bookName1):os.mkdir(bookName1)print(bookName1 + "创建完成") else:print("文件已创建") for url in urls:href = "http://www.biquge001.com/" + url['href'] # 字符串的拼接 拼接成正确的网址pageName = url.text # 每章的章名path = bookName1 + "\\" # 路径fileName = path + url.text + ".txt" # 文件名 = 路径 + 章节名 + ".txt"Tag = BeautifulSoup(getHtmlText(href), "html.parser") # 解析每张的网页substance = Tag.select("div #content") # 文章的内容for i in substance:substanceStr = i.textwriteIntoTxt(fileName, substanceStr)time.sleep(1)
总结
简单利用了BeautfulSoup的select方法对笔趣阁的网页进行了爬取
近期有很多朋友通过私信咨询有关Python学习问题。为便于交流,点击蓝色自己加入讨论解答资源基地
用python60行代码写一个简单的笔趣阁爬虫!三分一章?相关推荐
- python文本处理入门:44行代码写一个简单的藏头诗生成器
想必最近大家家庭群里最近都会看到这么一张图: 一惊,这什么玩意儿???后来一搜会发现里面不同的诗句来自于不同的古诗,嘛,这不是很好玩的一件事情吗?这次我们使用Github的唐诗宋词dataset:ht ...
- [教你做小游戏] 用86行代码写一个联机五子棋WebSocket后端
我是HullQin,公众号线下聚会游戏的作者(欢迎关注公众号,发送加微信,交个朋友),转发本文前需获得作者HullQin授权.我独立开发了<联机桌游合集>,是个网页,可以很方便的跟朋友联机 ...
- python编写程序输出诗句_Python文本处理简介:44行代码编写一个简单的隐藏诗生成器,python,入门,藏头诗...
想必最近大家家庭群里最近都会看到这么一张图: 一惊,这什么玩意儿???后来一搜会发现里面不同的诗句来自于不同的古诗,嘛,这不是很好玩的一件事情吗?这次我们使用Github的唐诗宋词dataset:ht ...
- 偷偷溜出来写个笔趣阁爬虫
爬笔趣阁的,或许有点小bug,权当过过手瘾 害,居然打不出代码块,就这样好了 import requests import random from lxml import etree import t ...
- python爬虫代码1000行-简单用14行代码写一个Python代理IP的爬虫
相信用别的语言只用14行是写不出来这样的效果的!而我们的Python 只需要区区的14行代码就能写出来哦! 这就是Python为什么是全球现在比较流行的语言之一了!因为简单 容易学! 比较上手! 现在 ...
- java简单编译器源代码_25行代码实现一个简单的编译器
起因 <25行JavaScript语句实现一个简单的编译器>实现的是一个简单到不能再简单的玩具的玩具,他的魔法是函数式编程简化了js代码.java 8提供了函数式编程的支持,昨晚脑子抽风突 ...
- PONG - 100行代码写一个弹球游戏
大家好,欢迎来到 Crossin的编程教室 ! 今天跟大家讲一讲:如何做游戏 游戏的主题是弹球游戏<PONG>,它是史上第一款街机游戏.因此选它作为我这个游戏开发系列的第一期主题. 游戏引 ...
- 100行代码写一个Compose版华容道
之前写过几个 Compose 的 demo,但一直没使用到 Gesture, Theme 等特性,于是写了一个华容道的小程序来展示上述这些特性.写完后又一次被 Compose 的生产力所折服,整个程序 ...
- python3GUI--200行代码写一个上课点名程序(附源码)
文章目录 一.准备工作 1.Tkinter 2.PIL 二.预览 1.启动 2.开始点名-顺序点名 3.开始点名-随机点名 4.手动加载人名单 5.开始点名-顺序点名-Pyqt5版本 6.人名单格式 ...
最新文章
- Java内存溢出详解之Tomcat配置
- 【 C 】对左值与右值的一些个人思考
- 密码找回功能可能存在的问题
- VC中实现GCC的2个比较常用的位运算函数
- MySQL 优化原理(二)
- DevExpress的GridControl的使用以及怎样添加列和绑定数据源
- leetcode 662. Maximum Width of Binary Tree | 662. 二叉树最大宽度(BFS)
- c语言中文件如何插入数据,急求如何将下列C语言程序数据存储到文件中?
- 你是菜鸡是有原因的 谈谈提问的艺术
- React 使用browserHistory项目访问404问题
- URL报错: unknown protocol
- 东莞城院c语言上机报告,浙大城市学院c语言上机试题
- CentOS系统修改IP
- 平纹、斜纹、缎纹是什么?各自有何特点?
- Android9.0删除高通ADsp固件(二十六)
- 文件分片_文件分片上传原理解析
- react 翻书效果_react实现页面切换动画效果
- 不同浏览器的使用体会
- python制作模型排放清单_机动车尾气污染物排放模型研究综述.pdf
- cocoscreator1.52 删除anysdk
热门文章
- Python九九乘法表和除法表
- 中谷教育python精讲_中谷教育Python视频(课件、源码)推荐
- LOL无限火力是哪个服务器先上线,LOL2018无限火力什么时候开启_LOL2018无限火力时间表_快吧游戏...
- VC实现历史记录的全面清除
- excel表格中出现乱码怎么办?
- 【毕业设计】电影评论情感分析 - GRU 深度学习
- HTML轴线怎么设置,cad怎么设置轴线
- nginx带参301,nginx重定向携带路由,nginx截取请求url作为重定向路由
- 一个月薪 12000 的北漂程序员的真实生活写照
- Xshell远程服务器后Tensorboard的本地可视化方法