python3 面向对象编程--类的封装和继承
#python3
import re
from urllib import request
import os
class PosterSpider(object):
     def __init__(self, path='./'):
           self.path = path
#the entry of this process
def getStart(self, url):
           page = self.reqPage(url)
page = page.decode('utf-8')
for mvname,mvurl in self.getMvInfo(page):
                self.save2File(mvname,mvurl)
nexturl = self.getNextpage(page)
           if nexturl:
               self.getStart(nexturl)
#request the page
      def reqPage(self, url):
           response = request.urlopen(url)
           if response.code == 200:
              page = response.read()
              return page
#get the fname and url for each mv
       def getMvInfo(self, page):
             urllist = re.findall(r'<img.*alt="(.*?)".*src="(.*?)"',page)
             return urllist
#get next page url
       def getNextpage(self, page):
             url = 'https://movie.douban.com/top250'
             nexturlraw = re.findall(r'<link rel="next" href="(.*?)"',page)
             if nexturlraw:
                nexturllast = url + nexturlraw[0]
                return nexturllast
#save img to file
    def save2File(self, fname, url):
          image = self.reqPage(url)
          fname = fname + '.jpg'
          fpath = os.path.join(self.path,fname)
          with open(fpath,'wb') as f:
                  f.write(image)
if __name__ == '__main__':
    url = 'https://movie.douban.com/top250'
    spider = PosterSpider('img')
    spider.getStart(url)
python3 面向对象编程--类的封装和继承的更多相关文章
- Python面向对象编程-类的封装,继承、多态
		面向对象是一种程序设计思想,对象作为程序基本单元,包含了数据和操作数据的函数. 面向对象的三大特点--数据封装.多态和继承. #类的创建,class关键字,类名大写,object表示从哪个类继承而来, ... 
- 黑马程序猿——JAVA面向对象的特性:封装,继承,多态
		- ----------android培训.java培训.java学习型技术博客.期待与您交流!------------ ... 
- (三)Javascript面向对象编程:非构造函数的继承
		Javascript面向对象编程:非构造函数的继承 这个系列的第一部分介绍了"封装",第二部分介绍了使用构造函数实现"继承". 今天是最后一个部分,介绍不使 ... 
- Java学习:面向对象三大特征:封装、继承、多态之封装性
		面向对象三大特征:封装.继承.多态. 封装性在Java当中的体现: 方法就是一种封装 关键字private也是一种封装 封装就是将一些细节信息隐藏起来,对于外界不可见. 问题描述:定义Person的年 ... 
- 13_Python的面向对象编程-类class,对象object,实例instance
		1.面向对象概述 1.类是用来描述对象的工具,把拥有相同属性和行为的对象分为一组 2.对象是由类实例化出来的一个具体的对象 属性: 对象拥有的名词,用变量表示 ... 
- php面向对象的三大特征 封装,继承,多态
		对象的主要三个特性 对象的行为:可以对 对象施加那些操作,开灯,关灯就是行为. 对象的形态:当施加那些方法是对象如何响应,颜色,尺寸,外型. 对象的表示:对象的表示就相当于身份证,具体区分在相同的行为 ... 
- javascript 学习笔记之面向对象编程(二):继承&多态
		~~接上篇~~上一篇实现了类的实现以及类成员变量和方法的定义,下面我们来了解下面向对象中两个最重要的特性:继承和多态. 继承 js中同样可以实现类的继承这一面向对象特性,继承父类中的所有成员(变量和属 ... 
- 面向对象的三大特征——封装、继承、多态(&常用关键字)
		一.封装 Encapsulation 在面向对象程式设计方法中,封装是指,一种将抽象性函式接口的实作细节部份包装.隐藏起来的方法. 封装的概念(针对服务器开发,保护内部,确保服务器不出现问题) 将类的 ... 
- JAVA基础——面向对象三大特性:封装、继承、多态
		JAVA面向对象三大特性详解 一.封装 1.概念: 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问. 2.好处: 只能通过规定的方法访问数据. ... 
随机推荐
- 微信小程序 引入公共页面的几种情况
			1.不带参数 首先在pages文件夹中新建一个template文件夹,文件夹中新建一个template.wxml文件,代码如下 <!--template.wxml--> <templ ... 
- [TJOI2015]弦论
			我们先求出该字符串的\(SA\)和\(Ht\) 然后分类讨论 \(T=0\)时,每次去掉\(Ht\)往后扫就行 \(T=1\)时,我们考虑\(lcp\)对答案的影响 既然用到\(lcp\),那就要用\ ... 
- Ubuntu16.04搭建kubernetes v1.11.2集群
			1.节点介绍 master cluster-1 cluster-2 cluster-3 hostname k8s-55 k8s-5 ... 
- InfoQ观察:Java EE的未来
			原创 2017-03-06 Charles Humble 聊聊架构 作者|Charles Humble编辑|薛命灯 作为InfoQ下一年编辑关注点审核工作的一部分,我们挑选了Java作为深入探讨的主题 ... 
- x64系统WSC注册方法
			@echo off title 注册WSC脚本部件 echo. ***************************************** echo. 支持x64系统(请以管理员身份运行) e ... 
- 关于Dynamics CRM 安装用户权限的说明
			做了这么多年的CRM项目,但发现部分客户的IT安全监管很严格,在CRM系统安装时,要求给出系统安排账号的权限. 这时小伙伴们 坚持不住了~~ 天天都是用域控的admin操作,这个时候问我要什么权限,于 ... 
- 个人理解的Lambda表达式的演化过程
			之前在组内进行过相关分享,为防止以后再单独整理,故在此将自己的PPT内容存放下. 所以,多数代码都是以图片的方式展现. 委托 什么是委托? 定义:委托是方法的抽象,它存储的就是一系列具有相同签名和返回 ... 
- 活字格Web应用平台学习笔记5 - 编辑和删除记录
			了几天,今天上活字格网站一看,他们获奖了,好厉害 荣膺盘古奖!活字格引领企业信息化建设新潮流 好吧,我继续学习,希望早点拿到认证证书. 今天要学的是编辑删除记录.目标: 还是接续之前的工程.做好后是这 ... 
- my big day is coming!
			明天博士学位论文答辩,给自己加油! 期望一切顺利! 
- iftop 命令
			在Linux中有一个可以实施监控网络流量的一个工具那就是我们这次要说的iftop命令,这个命令不是系统自带的内置命令,在使用之前是需要先进行安装的 安装方式:yum -y install iftop就 ... 
