前言

利用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行代码写一个简单的笔趣阁爬虫!三分一章?相关推荐

  1. python文本处理入门:44行代码写一个简单的藏头诗生成器

    想必最近大家家庭群里最近都会看到这么一张图: 一惊,这什么玩意儿???后来一搜会发现里面不同的诗句来自于不同的古诗,嘛,这不是很好玩的一件事情吗?这次我们使用Github的唐诗宋词dataset:ht ...

  2. [教你做小游戏] 用86行代码写一个联机五子棋WebSocket后端

    我是HullQin,公众号线下聚会游戏的作者(欢迎关注公众号,发送加微信,交个朋友),转发本文前需获得作者HullQin授权.我独立开发了<联机桌游合集>,是个网页,可以很方便的跟朋友联机 ...

  3. python编写程序输出诗句_Python文本处理简介:44行代码编写一个简单的隐藏诗生成器,python,入门,藏头诗...

    想必最近大家家庭群里最近都会看到这么一张图: 一惊,这什么玩意儿???后来一搜会发现里面不同的诗句来自于不同的古诗,嘛,这不是很好玩的一件事情吗?这次我们使用Github的唐诗宋词dataset:ht ...

  4. 偷偷溜出来写个笔趣阁爬虫

    爬笔趣阁的,或许有点小bug,权当过过手瘾 害,居然打不出代码块,就这样好了 import requests import random from lxml import etree import t ...

  5. python爬虫代码1000行-简单用14行代码写一个Python代理IP的爬虫

    相信用别的语言只用14行是写不出来这样的效果的!而我们的Python 只需要区区的14行代码就能写出来哦! 这就是Python为什么是全球现在比较流行的语言之一了!因为简单 容易学! 比较上手! 现在 ...

  6. java简单编译器源代码_25行代码实现一个简单的编译器

    起因 <25行JavaScript语句实现一个简单的编译器>实现的是一个简单到不能再简单的玩具的玩具,他的魔法是函数式编程简化了js代码.java 8提供了函数式编程的支持,昨晚脑子抽风突 ...

  7. PONG - 100行代码写一个弹球游戏

    大家好,欢迎来到 Crossin的编程教室 ! 今天跟大家讲一讲:如何做游戏 游戏的主题是弹球游戏<PONG>,它是史上第一款街机游戏.因此选它作为我这个游戏开发系列的第一期主题. 游戏引 ...

  8. 100行代码写一个Compose版华容道

    之前写过几个 Compose 的 demo,但一直没使用到 Gesture, Theme 等特性,于是写了一个华容道的小程序来展示上述这些特性.写完后又一次被 Compose 的生产力所折服,整个程序 ...

  9. python3GUI--200行代码写一个上课点名程序(附源码)

    文章目录 一.准备工作 1.Tkinter 2.PIL 二.预览 1.启动 2.开始点名-顺序点名 3.开始点名-随机点名 4.手动加载人名单 5.开始点名-顺序点名-Pyqt5版本 6.人名单格式 ...

最新文章

  1. Java内存溢出详解之Tomcat配置
  2. 【 C 】对左值与右值的一些个人思考
  3. 密码找回功能可能存在的问题
  4. VC中实现GCC的2个比较常用的位运算函数
  5. MySQL 优化原理(二)
  6. DevExpress的GridControl的使用以及怎样添加列和绑定数据源
  7. leetcode 662. Maximum Width of Binary Tree | 662. 二叉树最大宽度(BFS)
  8. c语言中文件如何插入数据,急求如何将下列C语言程序数据存储到文件中?
  9. 你是菜鸡是有原因的 谈谈提问的艺术
  10. React 使用browserHistory项目访问404问题
  11. URL报错: unknown protocol
  12. 东莞城院c语言上机报告,浙大城市学院c语言上机试题
  13. CentOS系统修改IP
  14. 平纹、斜纹、缎纹是什么?各自有何特点?
  15. Android9.0删除高通ADsp固件(二十六)
  16. 文件分片_文件分片上传原理解析
  17. react 翻书效果_react实现页面切换动画效果
  18. 不同浏览器的使用体会
  19. python制作模型排放清单_机动车尾气污染物排放模型研究综述.pdf
  20. cocoscreator1.52 删除anysdk

热门文章

  1. Python九九乘法表和除法表
  2. 中谷教育python精讲_中谷教育Python视频(课件、源码)推荐
  3. LOL无限火力是哪个服务器先上线,LOL2018无限火力什么时候开启_LOL2018无限火力时间表_快吧游戏...
  4. VC实现历史记录的全面清除
  5. excel表格中出现乱码怎么办?
  6. 【毕业设计】电影评论情感分析 - GRU 深度学习
  7. HTML轴线怎么设置,cad怎么设置轴线
  8. nginx带参301,nginx重定向携带路由,nginx截取请求url作为重定向路由
  9. 一个月薪 12000 的北漂程序员的真实生活写照
  10. Xshell远程服务器后Tensorboard的本地可视化方法