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 小把戏之下载小说相关推荐

  1. python编程小游戏代码-Python小游戏之300行代码实现俄罗斯方块

    前言 本文代码基于 python3.6 和 pygame1.9.4. 俄罗斯方块是儿时最经典的游戏之一,刚开始接触 pygame 的时候就想写一个俄罗斯方块.但是想到旋转,停靠,消除等操作,感觉好像很 ...

  2. python小游戏源码-Python小游戏之300行代码实现俄罗斯方块

    Python小游戏之300行代码实现俄罗斯方块 来源:中文源码网 浏览: 次 日期:2019年11月5日 [下载文档: Python小游戏之300行代码实现俄罗斯方块.txt ] (友情提示:右键点上 ...

  3. Python 小把戏之图片转字符串

    Python 小把戏之图片转字符串 #! /usr/bin/python3 # -*- coding: UTF-8 -*-from PIL import Image import argparse i ...

  4. python小功能 模拟下载进度条打印

    python小功能 模拟下载进度条打印 #!/usr/bin/env python3 # -*- coding:utf-8 -*-import timedef progress(arg):if arg ...

  5. python小游戏之二

    20行python代码的入门级小游戏 20行python代码的入门级小游戏_linmo8256的博客-CSDN博客_py游戏代码 猜数字小游戏python实现(可用来撩妹撩汉) 猜数字小游戏pytho ...

  6. python小游戏代码大全-Python小游戏之300行代码实现俄罗斯方块

    前言 本文代码基于 python3.6 和 pygame1.9.4. 俄罗斯方块是儿时最经典的游戏之一,刚开始接触 pygame 的时候就想写一个俄罗斯方块.但是想到旋转,停靠,消除等操作,感觉好像很 ...

  7. Python小游戏之“读心术”

    读心术:猜数字游戏 〉 一款经典的猜数字AI:用户先随机在 0-1000之间随意写一个数字,AI开 始猜,如果猜的数大了,用户就说大 了,反之,则说小了. 算法:二分查找 〉 从中间的数开始,如果猜中 ...

  8. python小游戏打地鼠下载_Python 打地鼠小游戏

    对于打地鼠游戏需要有一个清晰的逻辑思路,当然要制作打地鼠游戏还需要在Python中导入背景图片.地鼠图片等等.好了我们废话不多说,直接上代码. class GameManager: def __ini ...

  9. python编写小游戏代码_Python小游戏之300行代码实现俄罗斯方块

    Python小游戏之300行代码实现俄罗斯方块 来源:中文源码网 浏览: 次 日期:2019年11月5日 [下载文档: Python小游戏之300行代码实现俄罗斯方块.txt ] (友情提示:右键点上 ...

最新文章

  1. SAP MM ME56不能为审批后的PR分配供应源?
  2. anaconda的scikit-learn报错It seems that scikit-learn has not been built
  3. DOS命令大全(转)
  4. 统计学习方法第十九章作业:马尔可夫链蒙特卡罗法、吉布斯抽样算法(书上题目) 代码实现
  5. textrank4zh来处理句子的重要度
  6. 基于verilog按键消抖设计
  7. 学习excel数据分析_为什么Excel是学习数据分析的最佳方法
  8. 在计算机硬件中mo是指,计算机导论 - [课件]第2章 计算机系统的硬件.ppt
  9. 详解经典GPS辅助惯性导航论文 A GPS-aided Inertial Navigation System in Direct Configuration
  10. 我慕了!腾讯大手一挥,员工买房最高可申请免息借款90万
  11. C#语言开发环境的搭建
  12. android 图片加载方式
  13. Need Preamp And EQ Collection Mac - 英式前置音频放大插件
  14. 74HC595芯片单颗与级联的万能代码|2021-09-03
  15. 大数据产品推荐:金蜂巢大数据集成与脱敏系统
  16. html 网页表格居中,网页中表格如何居中
  17. 图片打包下载,本地服务器打包文件下载,及线上图片地址下载
  18. 图解GC(垃圾回收)复制算法加强版(1)Cheney的复制算法
  19. 服务器怎么解绑网站域名,服务器解绑ip
  20. c语言单片机红外报警设计,超级简单单片机红外感应开关DIY设计

热门文章

  1. 根据html页面模板动态生成html页面(c#类)
  2. usb传输标准和接口标准
  3. 02数据结构——算法概念
  4. [2018.12.9]BZOJ2153 设计铁路
  5. XHTML Strict和Transitional 的区别
  6. Hbase 学习(六) 配置文件调优
  7. UITableViewCell 取消选中的蓝色背景
  8. Java,开源,分享
  9. EMC NetWorker恢复oracle指南
  10. Wince下定制开机自启动程序