为了练习BeautifulSoup模块的使用,搞了个小说下载器。

一、效果展示

二、模块导入

需要的模块有BeautifulSoup,os,requests,re和lxml

from bs4 import BeautifulSoup
import os,requests,re
三、功能实现

1、为了方便找到想要的小说,于是我找了一个盗(和)版(谐)小说网站。网址是笔趣看

2、指定小说的下载地址

os.chdir(r"D:\\")

3、首先我需要根据每一章节的网址提取小说内容

def xiazai(url):try:html=requests.get(url).textsoup=BeautifulSoup(html,"lxml")name=soup.find("div",class_="p").find_all("a")[1].get_text()zj=soup.find("h1").get_text()book=soup.find_all("div",id="content",class_="showtxt")[0]book=str(book.get_text()).replace(u"\xa0",u" ").replace("       ","\n   ").replace("&1t;/p>","").replace(url,"").replace("请记住本书首发域名:www.biqukan.com。笔趣阁手机版阅读网址:m.biqukan.com","")book=book.replace("[笔趣看  www.biqukan.com]百度搜索“笔趣看小说网”手机阅读:m.biqukan.com","").replace("手机阅读地址:http://m.biqukan.com,数据和书签与电脑站同步,无广告清新阅读!","")  #去除广告with open(name+".txt","a") as f:f.write(zj+"\n"+book+"\n\n\n")print(zj+"  下载完成")except:print("下载失败")

这里我用string的replace()方法将广告替换为空白,同时由于文章内容存在特殊字符将导致存储失败所以我也将其替换为空格string.replace(u"\xa0",u" ")

4、既然已经能够提取给定地址的小说内容,那通过小说目录提供的地址,提取整本小说内容也不是不可能的。

def mulu(url):html=requests.get(url).textlink1=re.findall("正文卷</dt>([\S\s]*?)</dl>",html)[0]link2=re.findall('href="(.*?)">',link1)for link in link2:link="http://www.biqukan.com"+linkxiazai(link)

到此,只要提供小说目录的地址,就可以提取整本小说内容,但是正常使用的话还是不太方便,有没有方法能够直接通过查找小说名字就能下载小说呢?

5、还好,网站提供了搜索小说的接口http://www.biqukan.com/s.php?ie=gbk&s=2758772450457967865&q=“小说名”。

利用它,我们就可以直接对感兴趣的小说进行搜索,然后选择想下载的小说。

name=input("输入书名:")
url="http://www.biqukan.com/s.php?ie=gbk&s=2758772450457967865&q={}".format(name)
html=requests.get(url).text
try:link1=re.findall('"bookimg"><a href="(.*?)"><img src=',html)name1=re.findall('/">([\u4E00-\u9FA5]+)</a></h4><div class="cat">',html)i=1;for name in name1:print(str(i)+"  "+name)i=i+1i=0for link1[i] in link1:link1[i]="http://www.biqukan.com"+link1[i]i=i+1s=input("请选择: ")mulu(link1[int(s)-1])
except:print("未查询到相关结果!")

6、至此,一个完整的小说下载器就完成了。

小说下载器(python)相关推荐

  1. python tkinter下载器_下载小说还要去找网站?Python使用tkinter打造一个小说下载器...

    前言 今天教大家用户Python GUI编程--tkinter 打造一个小说下载器,想看什么小说,就下载什么小说 先看下效果图 Tkinter 是使用 python 进行窗口视窗设计的模块.Tkint ...

  2. 下载输入python之小说下载器version2.0

    本文是一篇关于下载输入的帖子 上一版本链接:传送门 这是我用pyinstaller打包成的exe文件,便利体验:传送门(上传了正在审核,请稍等) 这里使用了第三方库pyquery,安装方法见:上一版本 ...

  3. python 小说下载工具_python 制作网站小说下载器

    基本开发环境 ・ Python 3.6 ・ Pycharm 相关模块使用 目标网页分析 输入想看的小说内容,点击搜索 这里会返回很多结果,我只选择第一个 网页数据是静态数据,但是要搜索,是post请求 ...

  4. 【Python】实现一个小说下载器,可以打包成exe(附原码)

    前言 闲的无聊,现在没得什么好剧追(你们或许可以给我推荐推荐) 朋友都在看小说,那我就来用Python搞一个小说下载器吧 顺便打包一下 实现步骤 爬虫基本四个步骤: 采集一章小说内容 发送请求, 模拟 ...

  5. Python实现小说下载器,可以打包exe

    前言 闲的无聊,现在没得什么好剧追(你们或许可以给我推荐推荐) 朋友都在看小说,那我就来用Python搞一个小说下载器吧 顺便打包一下 实现步骤 爬虫基本四个步骤: 采集一章小说内容 发送请求, 模拟 ...

  6. python之小说下载器version3.0

    1.0版本链接:传送门 2.0版本链接:传送门 我想了一下,每个版本打包exe 意义不大,如果是最终版什么的 打一个还行,所以暂时不打包了 有需要的可以留言,我在打包. 这里使用了第三方库pyquer ...

  7. python编程免费小说_使用Python开发小说下载器,不再为下载小说而发愁

    有点荒废 这几天有点荒废,之前弃坑的网文<伏天氏>,这几天又给捡起来了.然后一发不可收拾的只想看小说,荒废了我的学习.在这里我要检讨啊..... 像我这样的穷人,看小说肯定是找免费的网站, ...

  8. python 小说下载工具_下载输入python之小说下载器version2.0

    本文是一篇关于下载输入的帖子 上一版本链接:传送门 这是我用pyinstaller打包成的exe文件,便利体验:传送门(上传了正在审核,请稍等) 这里使用了第三方库pyquery,安装方法见:上一版本 ...

  9. python 小说下载工具_使用tkinter打造一个小说下载器,想看什么小说,就下什么...

    前言 今天教大家用户Python GUI编程--tkinter 打造一个小说下载器,想看什么小说,就下载什么小说 先看下效果图 Tkinter 是使用 python 进行窗口视窗设计的模块.Tkint ...

  10. 【Python项目】Python基于tkinter实现笔趣阁小说下载器(附源码)

    前言 hello,大家好呀~ 笔趣阁小说应该很多小伙伴都知道 但是用Python实现一个笔趣阁小说下载器 那岂不是爽歪歪呀 基于tkinter实现的Python版本的笔趣阁小说下载器今天小编给大家实现 ...

最新文章

  1. 在spring MVC项目中集成Spring session redis (使用spring session框架,redis作为存储缓存)...
  2. [WIKIOI1298]凸包周长[裸凸包]
  3. nginx配置多个server
  4. 使用 Python ElementTree 生成 xml
  5. 怎样修改老旧commit的message信息?
  6. ios 获取控件高度
  7. 信息学奥赛一本通 1080:余数相同问题 2022.1.29 AC
  8. 传智播客 Html基础知识学习笔记
  9. Java程序员最常用的20%技术总结
  10. Swift的函数嵌套和返回内部函数
  11. PIL-读取与保存图片
  12. 易企秀手机html5场景源码,【VIP源码】六月1日最新完美版易企秀微信场景源码
  13. 汉诺塔(Hanoi)图解递归算法
  14. Jmeter使用函数助手生成随机数,处理同一个随机数多处使用
  15. 222Beta多样性限制性排序CPCoA/CCA/RDA/LDA
  16. DDR内存家族演进史
  17. 微信朋友验证消息是什么来源_微信开启朋友验证什么意思
  18. 微信小程序云开发数据库操作
  19. 迷雾之夏服务器维护,迷雾之夏攻略大全 全关卡通关攻略[多图]
  20. 在国外期刊发表文章时一定用到的,SCI论文写法攻略

热门文章

  1. wpf制作旋转小方块
  2. 阻抗测量单芯片方案AD5933 芯片使用方法
  3. 解决Chrome浏览器无法加载flash插件的问题
  4. 网站重要的推广方式——博客推广(上:什么是博客推广)
  5. css图片悬停添加蒙版和文字
  6. newton's three laws of motion(牛顿三大运动定律)
  7. html5时钟在图片上画指针,HTML5使用canvas元素绘制指针式动画时钟_网页代码站(www.webdm.cn)...
  8. hdu 5064 Find Sequence
  9. matlab 矩阵分行标准化,matlab矩阵标准化
  10. 基于位置服务(Location Based Service)