Python 小把戏之下载小说
Python 小把戏之下载小说
#! /usr/bin/python3
# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup
import sys
import requests
import re
'''
下载小说 网站: 笔趣阁 http://www.biquku.la/
Parameter:无Returns:无
Modify:2019/01/28
'''
class book_downloader(object):def __init__(self, url):'''初始化函数 Parameter:url: 网站: 笔趣阁的 小说目录页网址Returns:无Modify:2019/01/28'''self.__target = urlself.__txtname= '' #存放小说名self.__names = [] #存放章节名字self.__urls = [] #存放章节链接self.__nums = 0 #章节数self.__book_url=[] #存放风推动小说urldef get_download_url(self):'''获取各个章节的url 和 章节名称Parameter:无Returns:无Modify:2019/01/28'''req = requests.get(url = self.__target) #发送get请求,获取req对象 div_bf = BeautifulSoup(req.text) name = div_bf.find_all('div', id = 'info') #取出小说名称name_fb = BeautifulSoup(str(name[0])) self.__txtname = name_fb.find_all('h1')[0].string #取出小说名 div = div_bf.find_all('div', id = 'list') #取出章节信息a_bf = BeautifulSoup(str(div[0])) a = a_bf.find_all('a') #剔除章节信息中无效部分self.__nums = len(a) #获取章节数目for each in a:self.__names.append(each.string)self.__urls.append(self.__target + each.get('href'))def get_txt(self, url):'''获取各个章节内容Parameter:各个章节的urlReturns:章节内容 txtModify:2019/01/28'''r = requests.get(url)r.encoding = 'utf-8'r_bf = BeautifulSoup(r.text)r_txt = r_bf.find_all('div', id = 'content') #获取小说正文内容r_txt = r_txt[0].text.replace('\xa0'*4, '\n ') #替换换行return r_txtdef write_txt(self, name, txt):'''将小说章节和内容写入本地Parameter:name: 章节名 txt 章节的内容Returns:无Modify:2019/01/28'''with open(str(self.__txtname) + '.txt', 'a', encoding = 'utf-8') as f:f.write('\n\n' + name + '\n\n')f.writelines(' ' + txt.replace('\xa0'*4, '\n '))def download(self):'''将小说章节和内容写入本地Parameter:无Returns:无Modify:2019/01/28'''self.get_download_url() #获取各个章节的url 和 章节名称n = 0for i in self.__urls:sys.stdout.write(" %s 已下载:%.3f%%" % (self.__txtname,float( n*100/self.__nums)) + '\r')sys.stdout.flush()self.write_txt(self.__names[n], self.get_txt(i))n += 1def get_book_url(self):'''获取 http://www.biquku.la/ 首页上的封推的小说的urlParameter:无Returns:无Modify:2019/01/31'''url = 'http://www.biquku.la'html = requests.get(url = url) #发送get请求,获取req对象 div_bf = BeautifulSoup(html.text) urls = div_bf.find_all('div', class_ = 'content') #取出小说名称 和 urlprint(urls)for each in urls: #运用正则,取出小说urlself.__book_url += re.findall('<a href="(.*?)">', str(each))def download_books(self):'''下载 http://www.biquku.la/ 首页上的封推的小说Parameter:无Returns:无Modify:2019/01/31'''self.get_book_url()for each in self.__book_url:self.__urls = [] #存放章节链接self.__names = [] #存放章节名字self.__target = each self.download()if __name__ == '__main__':target = 'http://www.biquku.la/18/18109/'dl = book_downloader(target)
# dl.download() #下载target 指向的小说dl.download_books() #下载 http://www.biquku.la/ 首页上的封推的小说
Python 小把戏之下载小说相关推荐
- python编程小游戏代码-Python小游戏之300行代码实现俄罗斯方块
前言 本文代码基于 python3.6 和 pygame1.9.4. 俄罗斯方块是儿时最经典的游戏之一,刚开始接触 pygame 的时候就想写一个俄罗斯方块.但是想到旋转,停靠,消除等操作,感觉好像很 ...
- python小游戏源码-Python小游戏之300行代码实现俄罗斯方块
Python小游戏之300行代码实现俄罗斯方块 来源:中文源码网 浏览: 次 日期:2019年11月5日 [下载文档: Python小游戏之300行代码实现俄罗斯方块.txt ] (友情提示:右键点上 ...
- Python 小把戏之图片转字符串
Python 小把戏之图片转字符串 #! /usr/bin/python3 # -*- coding: UTF-8 -*-from PIL import Image import argparse i ...
- python小功能 模拟下载进度条打印
python小功能 模拟下载进度条打印 #!/usr/bin/env python3 # -*- coding:utf-8 -*-import timedef progress(arg):if arg ...
- python小游戏之二
20行python代码的入门级小游戏 20行python代码的入门级小游戏_linmo8256的博客-CSDN博客_py游戏代码 猜数字小游戏python实现(可用来撩妹撩汉) 猜数字小游戏pytho ...
- python小游戏代码大全-Python小游戏之300行代码实现俄罗斯方块
前言 本文代码基于 python3.6 和 pygame1.9.4. 俄罗斯方块是儿时最经典的游戏之一,刚开始接触 pygame 的时候就想写一个俄罗斯方块.但是想到旋转,停靠,消除等操作,感觉好像很 ...
- Python小游戏之“读心术”
读心术:猜数字游戏 〉 一款经典的猜数字AI:用户先随机在 0-1000之间随意写一个数字,AI开 始猜,如果猜的数大了,用户就说大 了,反之,则说小了. 算法:二分查找 〉 从中间的数开始,如果猜中 ...
- python小游戏打地鼠下载_Python 打地鼠小游戏
对于打地鼠游戏需要有一个清晰的逻辑思路,当然要制作打地鼠游戏还需要在Python中导入背景图片.地鼠图片等等.好了我们废话不多说,直接上代码. class GameManager: def __ini ...
- python编写小游戏代码_Python小游戏之300行代码实现俄罗斯方块
Python小游戏之300行代码实现俄罗斯方块 来源:中文源码网 浏览: 次 日期:2019年11月5日 [下载文档: Python小游戏之300行代码实现俄罗斯方块.txt ] (友情提示:右键点上 ...
最新文章
- SAP MM ME56不能为审批后的PR分配供应源?
- anaconda的scikit-learn报错It seems that scikit-learn has not been built
- DOS命令大全(转)
- 统计学习方法第十九章作业:马尔可夫链蒙特卡罗法、吉布斯抽样算法(书上题目) 代码实现
- textrank4zh来处理句子的重要度
- 基于verilog按键消抖设计
- 学习excel数据分析_为什么Excel是学习数据分析的最佳方法
- 在计算机硬件中mo是指,计算机导论 - [课件]第2章 计算机系统的硬件.ppt
- 详解经典GPS辅助惯性导航论文 A GPS-aided Inertial Navigation System in Direct Configuration
- 我慕了!腾讯大手一挥,员工买房最高可申请免息借款90万
- C#语言开发环境的搭建
- android 图片加载方式
- Need Preamp And EQ Collection Mac - 英式前置音频放大插件
- 74HC595芯片单颗与级联的万能代码|2021-09-03
- 大数据产品推荐:金蜂巢大数据集成与脱敏系统
- html 网页表格居中,网页中表格如何居中
- 图片打包下载,本地服务器打包文件下载,及线上图片地址下载
- 图解GC(垃圾回收)复制算法加强版(1)Cheney的复制算法
- 服务器怎么解绑网站域名,服务器解绑ip
- c语言单片机红外报警设计,超级简单单片机红外感应开关DIY设计