炫酷的下载小说

释放双眼,带上耳机,听听看~!

首先感谢前一阵大哥打赏

所以我才能这么奢侈

正题,喜欢看小说,然后下载不了怎么办,介绍一种方法,爬它

安装解析器

纯Python实现的 html5lib , html5lib的解析方式与浏览器相同,可以选择下列方法来安装html5lib:

pip install html5lib

来源于文档

https://beautifulsoup.readthedocs.io/zh_CN/latest/

首先还是审查元素查看直接把这个页面下载下来然后再把标签<br>去掉就可以了

这句话比较重要,div的文字是我们需要的东西

知道了这句话就好办了

用Beautiful Soup提取我们想要的内容

昨天让你们安装的爬虫入门一把搜

中有安装Beautiful Soup教程

还是很简单的

可是这样显得很乱怎么办

这样就去掉了不想要的标签

解释一下代码吧

# -*- coding:UTF-8 -*-from bs4 import BeautifulSoup#还记得form模块名import函数名吗?import requests#引用模块 requesttarget = 'https://www.biqukan.com/0_157/37632.html'#所要提取的链接req = requests.get(url = target)#发起get请求URL是target里的字符串html = req.text#保存文档bf = BeautifulSoup(html)#调用beautifulsoup进行下一步操作,texts = bf.find_all('div', class_ = 'showtxt')#find_all没见过?删除不想要的标签,class_为什么要加下划线,这个是因为怕和#Python里的类(class)起冲突print(texts[0].text.replace('\xa0'*8,'\n\n'))#剔除空格,替换为回车进行分段。用回车代替,('\xa0'*8,'\n\n'))就是用来替换的#\xa0 是不间断空白符,也就是文中的&nbsp*8,替换成两个空格

下面分析目录,下载整部小说

嗯哼,发现放在了div class =”listmain”里

我粘过来了,你们直接倒到文后,这玩意太长了

<dl> <dt>《巫神纪》最新章节列表</dt>  <dd><a href="/0_157/22760262.html">3月18号的线下活动!</a></dd> <dd><a href="/0_157/22745044.html">3月18号的线下活动!</a></dd> <dd><a href="/0_157/22745043.html">感言及预告!</a></dd> <dd><a href="/0_157/13247046.html">第一千九百零一章 远行(暨终章)</a></dd> <dd><a href="/0_157/13246381.html">第一千九百章 斩绝</a></dd> <dd><a href="/0_157/13246161.html">第一千八百九十九章 补道</a></dd> <dd><a href="/0_157/13246012.html">第一千八百九十八章 强敌</a></dd> <dd><a href="/0_157/13239022.html">第一千八百九十七章 惊变</a></dd> <dd><a href="/0_157/13238305.html">第一千八百九十六章 虚影之请</a></dd> <dd><a href="/0_157/13232253.html">第一千八百九十五章 重铸玉碟</a></dd> <dd><a href="/0_157/13230735.html">第一千八百九十四章 紧锣密鼓</a></dd> <dd><a href="/0_157/13228892.html">第一千八百九十三章 十八地狱</a></dd> <dt>《巫神纪》正文卷</dt>  <dd><a href="/0_157/37631.html">楔子</a></dd> <dd><a href="/0_157/37632.html">第一章 猎人</a></dd> <dd><a href="/0_157/37633.html">第二章 恶意</a></dd> <dd><a href="/0_157/37634.html">第三章 约斗</a></dd> <dd><a href="/0_157/37635.html">第四章 交易</a></dd> <dd><a href="/0_157/37636.html">第五章 收获</a></dd> <dd><a href="/0_157/37637.html">第六章 父母</a></dd> <dd><a href="/0_157/37638.html">第七章 挑战</a></dd> <dd><a href="/0_157/37639.html">第八章 异族</a></dd> <dd><a href="/0_157/37640.html">第九章 算计</a></dd> <dd><a href="/0_157/37641.html">第十章 强杀</a></dd>  <dd><a href="/0_157/13193631.html">第一千八百八十八章 死于此地</a></dd> <dd><a href="/0_157/13203206.html">第一千八百八十九章 消耗</a></dd> <dd><a href="/0_157/13207679.html">第一千八百九十章 唯死而已</a></dd> <dd><a href="/0_157/13210091.html">第一千八百九十一章 齐动</a></dd> <dd><a href="/0_157/13223014.html">第一千八百九十二章 冥道出手</a></dd> <dd><a href="/0_157/13228892.html">第一千八百九十三章 十八地狱</a></dd> <dd><a href="/0_157/13230735.html">第一千八百九十四章 紧锣密鼓</a></dd> <dd><a href="/0_157/13232253.html">第一千八百九十五章 重铸玉碟</a></dd> <dd><a href="/0_157/13238305.html">第一千八百九十六章 虚影之请</a></dd> <dd><a href="/0_157/13239022.html">第一千八百九十七章 惊变</a></dd> <dd><a href="/0_157/13246012.html">第一千八百九十八章 强敌</a></dd> <dd><a href="/0_157/13246161.html">第一千八百九十九章 补道</a></dd> <dd><a href="/0_157/13246381.html">第一千九百章 斩绝</a></dd> <dd><a href="/0_157/13247046.html">第一千九百零一章 远行(暨终章)</a></dd> <dd><a href="/0_157/22745043.html">感言及预告!</a></dd> <dd><a href="/0_157/22745044.html">3月18号的线下活动!</a></dd> <dd><a href="/0_157/22760262.html">3月18号的线下活动!</a></dd> </dl>

他妈的怎么这么长,删了一部分,这小说2000多章

获取章节

# -*- coding:UTF-8 -*-from bs4 import BeautifulSoupimport requestsif __name__ == "__main__": server = 'http://www.biqukan.com/' target = 'https://www.biqukan.com/0_157/' req = requests.get(url = target) html = req.text div_bf = BeautifulSoup(html) div = div_bf.find_all('div', class_ = 'listmain') a_bf = BeautifulSoup(str(div[0])) a = a_bf.find_all('a') for each in a: print(each.string, server + each.get('href'))

整合一下代码

# -*- coding:UTF-8 -*-from bs4 import BeautifulSoupimport requests, sys """类说明:下载《笔趣看》网小说《巫神纪》Parameters:Returns:Modify: 2017-09-13"""class downloader(object):  def __init__(self): self.server = 'http://www.biqukan.com/' self.target = 'https://www.biqukan.com/1_1094/' self.names = [] #存放章节名 self.urls = [] #存放章节链接 self.nums = 0 #章节数  """ 函数说明:获取下载链接 Parameters: Returns: Modify: 2017-09-13 """ def get_download_url(self): req = requests.get(url = self.target) html = req.text div_bf = BeautifulSoup(html) div = div_bf.find_all('div', class_ = 'listmain') a_bf = BeautifulSoup(str(div[0])) a = a_bf.find_all('a') self.nums = len(a[15:]) #剔除不必要的章节,并统计章节数 for each in a[15:]: self.names.append(each.string) self.urls.append(self.server + each.get('href'))  """ 函数说明:获取章节内容 Parameters: target - 下载连接(string) Returns: texts - 章节内容(string) Modify: 2017-09-13 """ def get_contents(self, target): req = requests.get(url = target) html = req.text bf = BeautifulSoup(html) texts = bf.find_all('div', class_ = 'showtxt') texts = texts[0].text.replace('\xa0'*8,'\n\n') return texts  """ 函数说明:将爬取的文章内容写入文件 Parameters: name - 章节名称(string) path - 当前路径下,小说保存名称(string) text - 章节内容(string) Returns: Modify: 2017-09-13 """ def writer(self, name, path, text): write_flag = True with open(path, 'a', encoding='utf-8') as f: f.write(name + '\n') f.writelines(text) f.write('\n\n') if __name__ == "__main__": dl = downloader() dl.get_download_url() print('《巫神纪》开始下载:') for i in range(dl.nums): dl.writer(dl.names[i], '巫神纪.txt', dl.get_contents(dl.urls[i])) sys.stdout.write(" 已下载:%.3f%%" % float(i/dl.nums) + '\r') sys.stdout.flush() print('《巫神纪》下载完成')

下载完成

参考大牛博客https://blog.csdn.net/u012662731/article/details/78537432

本文源自微信公众号:渗透云笔记

人已赞赏
安全工具

《汇编语言》——笔记(一)

2019-10-16 17:16:54

安全工具

Docker学习笔记(3)

2019-10-16 17:17:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索