首页 > 编程语言 >python3 面向对象编程--类的封装和继承

python3 面向对象编程--类的封装和继承

时间:2023-06-19 18:36:54浏览次数:39  
标签:-- self request url def 面向对象编程 path page python3

#python3
import re
from urllib import request
import osclass 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)

用一个例子来演示会更加清晰



标签:--,self,request,url,def,面向对象编程,path,page,python3
From: https://blog.51cto.com/u_13747193/6516790

相关文章

  • 线上视频会议平台搭建如何选择服务器配置?
    庚子鼠年,荆楚大地,奋战疫情,举国上下,众志成城!但是不管何时,我们的工作是不能被耽搁的!全国的线上会议平台也都活跃了起来无疑,远程线上会议的需求量暴增,未来的前景十分可观,从而上下游供应链也带动起来。一个线上会议平台要运行,需要有大带宽,无限流量,高配置的服务器和专业的技术团队来支撑......
  • grep 搜索多个同时满足的条件 grep -nr sed 替换 hostnamectl set-hostname
    (二) GrepAND操作1. 使用-E'pattern1.*pattern2'grep命令本身不提供AND功能。但是,使用-E选项可以实现AND操作。  grep-E'pattern1.*pattern2'filename grep-E'pattern1.*pattern2|pattern2.*pattern1'filename第一个例子如下:(其中两个pattern的顺序是指定的)  $gre......
  • kubernetes 生命周期问题分析
    1.Failed --pod里至少一个容器以非0code退出,说明应用有问题,需要debug应用容器2.pending--说明API对象已经被创建和保存在etcd数据库里,但是创建过程出了问题,可能是imagepull出问题,也可能是调度出了问题3.Unknow--说明pod的状态不能持续地被Kubelet发送给kubeapi,这很可能是......
  • 关于DMA (二)
    参考https://www.st.com/resource/zh/application_note/an4031-using-the-stm32f2-stm32f4-and-stm32f7-series-dma-controller-stmicroelectronics.pdf1.DMA数据流/通道以STM32F2为例介绍数据流和通道的概念。一个DMA控制器可以提供8个数据流,每个数据流有8个可选通......
  • 费报只是小 case!电子影像系统,工作效率up无限
    在日常工作中,我发现许多朋友对电子影像系统存有一个错误认知,“电子影像系统,我了解,就是用来做费用报销的吧”。但事实上,电子影像系统的实用价值远非这样,它可以解决企业许多业务场景中的难点。今天,让我们一起来探讨电子影像系统,希望能对大家在企业数字化改革中带来更多帮助......
  • kubernetes 资源请求和限制
    1.spec:containers:-name:exampleresources:requests:cpu:100mmemory:64Milimits:cpu:200mmemory:128Mi   例如,一个带有3个容器的pod,每个容器请求0......
  • 数字签名的过程详解
      数字签名的过程详解1.数字证书的概念2.数字签名的过程3.加密的过程4.数字签名两大特性5.用到的部分名词解释1.数字证书的概念数字证书又叫“数字身份证”、“网络身份证”,是由证书认证中心CA发放并经认证中心数字签名,包含公开密钥拥有者以及公开密钥相关信息的一种电......
  • AtCoder Beginner Contest(abc) 300
    A-N-choicequestion题目大意从n个数里面找出a+b的结果解题思路签到题不多嗦了神秘代码#include<bits/stdc++.h>#defineintlonglongusingnamespacestd;typedefpair<int,int>PII;constintN=310;intn;signedmain(){inta,b;cin>>n......
  • 翻转二叉树
    给你一棵二叉树的根节点root,翻转这棵二叉树,并返回其根节点。示例1:输入:root=[4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]示例2:输入:root=[2,1,3]输出:[2,3,1]示例3:输入:root=[]输出:[]来源:力扣(LeetCode)链接:https://leetcode.cn/problems/invert-binary-tree著作权归......
  • python写入文件后中文乱码
    ......