Crawler:利用Beautifulsoup库+find_all方法实现下载在线书架小说《星祖的电影世界》

目录

输出结果

核心代码


输出结果

核心代码

# -*- coding: utf-8 -*-
'''
Created on 2018年4月7日@author: niu
'''
#Py之Crawler:利用beautifulsoup+find_all方法实现下载在线书架小说《星祖的电影世界》
#find_all方法的第一个参数是获取的标签名,第二个参数class_是标签的属性。from bs4 import BeautifulSoup
import requests, sysclass downloader(object):def __init__(self):self.server = 'http://www.biqukan.com/'self.target = 'http://www.biqukan.com/50_50927/'self.names = []            #存放章节名self.urls = []            #存放章节链接self.nums = 0            #章节数def get_download_url(self): #获取下载链接req = requests.get(url = self.target)html = req.textdiv_bf = BeautifulSoup(html)  #利用beautifulsoup提取内容div = div_bf.find_all('div', class_ = 'listmain') #通过审查元素发现全书各个章节存放在了class属性为listmain的div标签下,各章之间差别就在于这些章节的【href】属性不一样,而且其属性正好对应着每一章节URL后半部分,那这样,我们就可以根据标签的href属性值获得每个章节的链接和名称了。a_bf = BeautifulSoup(str(div[0]))a = a_bf.find_all('a')  self.nums = len(a[14:])      #剔除不必要的章节,并统计章节数for each in a[14:]:self.names.append(each.string)self.urls.append(self.server + each.get('href')) #再接着提取章节名和章节文章def get_contents(self, target): #获取章节内容,target下载连接(string),texts章节内容(string)req = requests.get(url = target)html = req.textbf = BeautifulSoup(html)texts = bf.find_all('div', class_ = 'showtxt') #观察不同标签发现class属性为showtxt的div标签只有一个!这个标签里面存放的内容,是我们需要的小说正文texts = texts[0].text.replace('\xa0'*8,'\n\n')  #replace方法,剔除空格,替换为回车进行分段。 在html中是用来表示空格的。replace(‘\xa0’*8,’\n\n’)就是去掉下图的八个空格符号,并用回车代替return textsdef writer(self, name, path, text): #将爬取的文章内容写入文件write_flag = Truewith open(path, 'a', encoding='utf-8') as f: #当前路径下,小说保存名称(string)f.write(name + '\n')  #章节名称(string)f.writelines(text)  #章节内容(string)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('《星祖的电影世界》下载完成')

Crawler:利用Beautifulsoup库+find_all方法实现下载在线书架小说《星祖的电影世界》相关推荐

  1. Keil安装stm库文件方法及下载地址

    Keil安装stm库文件方法及下载地址 STM对应芯片库下载地址 官网下载靠谱 STM对应芯片库下载地址 在下载的时候需要去ARM,keil的官网进行下载,不用去找其他的博客链接,这个是官方网址, h ...

  2. python库安装方法及下载依赖库

    python库的安装方法 直接使用pip pip install xxx python第三方下载,可以在地址栏上输入所需库的名字,进行快速查找 源码安装 python setup.py install ...

  3. Python 爬虫篇-利用BeautifulSoup库爬取墨迹天气网的天气信息实例演示,调用墨迹天气api接口获取空气质量

    安装方法: pip install BeautifulSoup4 BeautifulSoup 详细使用文档 墨迹天气抓取演示 墨迹天气没有提供专门的天气接口 api,但我们可以用 BeautifulS ...

  4. Python 爬虫进阶篇-利用beautifulsoup库爬取网页文章内容实战演示

    我们以 fox新闻 网的文章来举例子,把整篇文章爬取出来. 首先是标题,通过结构可以看出来 class 为 article-header 的节点下的 h1 里的内容即是标题,通过 string 可以获 ...

  5. python 网站爬虫 下载在线盗墓笔记小说到本地的脚本

    最近闲着没事想看小说,找到一个全是南派三叔的小说的网站,决定都下载下来看看,于是动手,在很多QQ群里高手的帮助下(本人正则表达式很烂,程序复杂的正则都是一些高手指导的),花了三四天写了一个脚本 需要 ...

  6. python下载到本地的script_python 站点爬虫 下载在线盗墓笔记小说到本地的脚本

    近期闲着没事想看小说,找到一个全是南派三叔的小说的站点,决定都下载下来看看,于是动手,在非常多QQ群里高手的帮助下(本人正則表達式非常烂.程序复杂的正则都是一些高手指导的),花了三四天写了一个脚本 须 ...

  7. Crawler:基于BeautifulSoup库+requests库实现爬取2018最新电影《后来的我们》热门短评

    Crawler:基于BeautifulSoup库+requests库实现爬取2018最新电影<后来的我们>热门短评 目录 输出结果 实现代码 输出结果 实现代码 # -*- coding: ...

  8. 利用Python中的BeautifulSoup库爬取安居客第一页信息

    题目: 网址为https://beijing.anjuke.com/sale/, 利用BeautifulSoup库,爬取第1页的信息,具体信息如下:进入每个房源的页面,爬取小区名称.参考预算.发布时间 ...

  9. 利用Python中的BeautifulSoup库爬取豆瓣读书中书本信息

    利用BeautifulSoup库,获取前250本图书的信息,需要爬取的信息包括书名.书名的URL链接.作者.出版社和出版时间.书本价格.评分和评论,把这些信息存到txt文件,要求将这些信息对齐,排列整 ...

最新文章

  1. PCL点云配准(2)
  2. 安装TensorFlow时出现ERROR: Cannot uninstall ‘wrapt‘问题的解决方案
  3. SSM整合及CRUD实现
  4. python爬带用户名密码的网页_python爬虫用户名密码登录POST
  5. 手把手教你如何用Python制作一个电子相册?末附python教程
  6. python alter_GitHub - sealter/LearnPython: 以撸代码的形式学习Python
  7. 阿里巴巴成立云原生技术委员会,云原生升级为阿里技术新战略!
  8. Matlab中vpa一直在忙,matlab数据类型转换遇到问题,及解决办法,sym,double ,vpa转换...
  9. Java学习笔记(三):数组
  10. 这些道理不懂,你注定就是穷打工的命
  11. 程序员有哪些必备技能?
  12. pycharm分辨率清晰度
  13. java 日历签到功能_快速简单的实现在日历上签到的功能,不需要日历组件,带后端实现讲解...
  14. java支付花呗分期接口教程,支付宝花呗分期接口有什么用?附借口用法介绍
  15. 尘封多年的期权,价值千万...
  16. 软技能—代码之外的生存指南
  17. springBoot员工管理系统
  18. 【纯音的世界】系列---【静音吧】爱.请给我时间.
  19. PDF编辑之加密的PDF文档如何解除密码和进行编辑
  20. 毕业论文神器:git 管理word版本

热门文章

  1. python接口自动化-参数化
  2. 10进制颜色 转换成 16进制
  3. nodejs 相关管理工具
  4. eWebEditor 错误 (不支持 ie7 ie8 maxthon 及其它浏览器)终极办法
  5. 基于Leaflet和高德Web API扩展地理编码服务
  6. python获取天气信息写入原有的excel文档
  7. 耗时 3 天,上亿数据如何做到秒级查询?
  8. Spring Boot 中的 RestTemplate 不好用?试试 Retrofit!
  9. 看看这些大龄程序员都做了些什么
  10. 听说你,对薪酬待遇不太满意。。。