python学习11-装饰器,正则表达式与爬虫

目录

开放封闭原则ocp:已经实现的功能代码不允许被修改,但可以增加开发

正则表达式

爬虫


开放封闭原则ocp:已经实现的功能代码不允许被修改,但可以增加开发

装饰器:装饰者设计模式的体现,当我们对原有功能不能满足的时候,我们可以通过装饰原有代码来实现代码增强

python提供的装饰器(decorator),就是强化和装饰原有函数功能,将函数功能增强的一种语法

装饰器运行流程:将被装饰代码调用到装饰器内,在其前后增添代码

python断点调试

动态语言的特性

python是一门面向对象的语言(相对于面向过程)

python是一门动态语言(相对于静态语言)

python是一门若数据类型语言(相对于强数据类型语言)

python是一门解释性语言(编译型语言),脚本性

动态语言运行动态的添加和删除对象属性和方法!!!

python垃圾回收机制:

一引用计数为主,分代收集,进行垃圾的回收

引用计数最大的问题:循环引用问题

正则表达式

什么是正则表达式:

Regular Expression:简写为re,regexp,翻译成中文:正则表达式

通过特殊的符号,来描述或者匹配,查找,检索特定的字符串(或者文本)的功能

python对于正则的支持:

python提供了一个内置模块,专门处理正则,这就是re模块

常见方法:

compile:          #编译

sub:                #替换

match:            #匹配

search:            #查找

findall:            #查找所有,以列表形式返回所有数据

Finditer                 #查找所有,以迭代器的形式返回所有数据

Split:                 #切割数据

正则表达式一元字符: 

.                       #该符号匹配所有符号,除换行符(\n)

\w               #匹配有效符号(python3中,包含了各国的常用语言符号)

\d                #匹配数字

\d+              #至少一个数字

\s                #匹配空白位(空格,\t制表符)

【abcdef】  #匹配中括号中某个符号,列举

【a-z】       #中括号中如果出现-,则表示一个范围,该区间是[a-z]的区间

【a-zA-Z0-9_】   #匹配有效符号

^xx                #表示以什么什么开头

Xx$           #以xx结尾

反义符:

\W            #匹配特殊符号

\D             #非数字

\S             #非空白位

[^xxxx]       #不能以中括号中的某个符号匹配

注意:[^xxxx] 和^[xxxx]的区别:

在python中,一个\有特殊的用途,若想表示\,建议用\\

转义符:

在正则表达式中,如果需要原样匹配正则符号时,可以使用转义符,表示符号的原有含义

.           \.

\w        \ \w

注意,在pytho中,字符串本身对应\符号有特殊含义,而正则表达式也对应\有特殊含义

如果需要正则中原样匹配一个\符号,需要\\\\来做转义

如果不想写四个反斜杠来表示一个反斜杠,也可以使用python提供的特殊写法:

r“正则表示”

注意:建议以后所有的正则表达式,都在最前面加上r

重复问题:

    *             # 匹配任意次        (0到多次)

    +             #匹配1到多次

   ?          #0或者一次

   {m}      #准确匹配m位

  {m,}   #至少m位

  {m,n} #匹配的次数就是{m,n}闭区间

分组:

如果需要匹配多个单词组,可以使用(word|word|word…),表示选择其中要一个

re模块中的常见方法:

compile:          #编译

sub:                #替换

match:            #匹配,从头匹配数据

search:            #查找,匹配中后立刻返回,一个数据

findall:            #查找所有,以列表形式返回所有数据

Finditer                 #查找所有,以迭代器的形式返回所有数据

Split:                 #切割数据

匹配一个HTML标签:    r"</?\w+>"

贪婪与懒惰(非懒惰):

贪婪模式:正则表达式在匹配时,会尽可能多的匹配

非贪婪模式:正则表达式在匹配时,会尽可能少的匹配

针对的多位操作:

  *             # 匹配任意次        (0到多次)

    +             #匹配1到多次

   ?          #0或者一次

   {m}      #准确匹配m位

  {m,}   #至少m位

  {m,n} #匹配的次数就是{m,n}闭区间

将贪婪模式转换成非贪婪模式:在后面加 ?

爬虫

什么是爬虫:

数据采集

俗称:网络爬虫,利用网络技术,进行数据的蔓延采集

Python

urllib库:

是python提供的专业的网络库

#response=request.urlopen(url)

#print(response)

#content=response.read()

#print(content)

反爬机制:

网站或者软件不想让爬虫采集自己的数据

request库:

下载第三方模块:pip install requests

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值