正则取消转义

正则器中取消转义推荐使用\(每个\只能取消一个字符的转义)

而python中取消转义推荐使用r‘\n\a\t’(也可以使用\)

python内置模块之re

引用方式:import re

import re
re.findall('正则表达式','带匹配的文本')#根据正则匹配所有符合要求的文本
res=re.findall('a','abd jason  jack')#找到所有带a的字符
print(res)#生成列表['a', 'a', 'a']re.search('正则表达式','带匹配的文本')#根据正则匹配一个符合目标的字符
# ret=re.search('s','hawhe scere  asec')
ret=re.search('j','hawhe scere  asec')#没有符合条件的数据,group直接报错
print(ret)#<re.Match object; span=(6, 7), match='s'>
print(ret.group())#可以取出拿到的第一个s

findall中没有查到相关的字符,则返回值是一个【】

search中没有查到相关的字符,group中直接报错

re.match:根据正则从头到开始匹配,换言之,想要匹配的字符必须在开头

ret=re.match('a','hawhe scere  asec')#None
print(ret)
ret=re.match('h','hawhe scere  asec')#<re.Match object; span=(0, 1), match='h'>
print(ret)
print(ret.group())#h

re.split:按照前面的正则表达式切割字符res=re.split('[ab]','abcd')   print(res)#返回值【】【】cd

re.sub:re.sub('正则表达式的目标类型',‘转换字符’,‘字符串’,可跟个数(不写默认替换全部))#输出结果将目标类型替换成转换字符

re.subn:在sub的基础上将字符转成元组

re.compile:

regexp_obj = re.compile('\d+')
res = regexp_obj.search('absd213j1hjj456jk')
res1 = regexp_obj.match('123hhkj2h1j3123')
res2 = regexp_obj.findall('1213k1j2jhj21j3123hh')
print(res,res1,res2)

'''常用'''
findall针对分组优先展示   无名分组
res = re.findall("^[1-9]\d{14}(\d{2}[0-9x])?$",'110105199812067023')
print(res)  # ['023']
?:取消分组 优先展示         
# res1 = re.findall("^[1-9](?:\d{14})(?:\d{2}[0-9x])?$",'110105199812067023')
# print(res1)

# 有名分组 ?p<xxx>(<名字>)给分组取名,根据名字来取值
res = re.search('^[1-9](?P<xxx>\d{14})(?P<ooo>\d{2}[0-9x])?$','110105199812067023')
print(res)
print(res.group())  # 110105199812067023
print(res.group(1))  # 10105199812067  无名分组的取值方式(索引取)
print(res.group('xxx'))  # 10105199812067
print(res.group('ooo'))  # 023

re实战之爬取红牛分公司数据

with open(r'redbull.html','r',encoding='utf-8')as f:data=f.read()
title=re.findall('<h2>(.*?)</h2>',data)email_list = re.findall('<p class="mailIco">(.*?)</p>', data)phone_list = re.findall('<p class="telIco">(.*?)</p>', data)
res=zip(title,email_list,phone_list)for data_tuple in res:print("""公司名称:%s公司地址:%s公司邮箱:%s"""%(data_tuple[0],data_tuple[1],data_tuple[2]))

collections模块(高阶模块)

1.nametuple(具名元组)
    from collections import namedtuple

2.队列 import queue  # 内置队列模块:FIFO

 # 初始化队列q = queue.Queue()# 往队列中添加元素q.put('first')q.put('second')q.put('third')# 从队列中获取元素print(q.get())print(q.get())print(q.get())print(q.get())  # 值去没了就会原地等待

3.双端队列deque

 from collections import dequeq = deque([11,22,33])q.append(44)  # 从右边添加q.appendleft(55)  # 从左边添加print(q.pop())  # 从右边取值print(q.popleft())  # 从做边取值

4.有序字典OrderDict

normal_dict=dict([('id',2379837394),('name','jason'),('pwd','123')])
print(normal_dict)
from  collections import OrderedDict
order_dict=OrderedDict([('id',2379837394),('name','jason'),('pwd','123')])
print(order_dict)

5.默认字典defaultdict

可以做字典,不同的k匹配不同的v值,ascii码和值域范围

from  collections import defaultdict
res='bnmfasdjfadfhajdkfhjd'
my_dict=defaultdict(list)
for value in res:if value>'f':my_dict['k1'].append(value)else:my_dict['k2'].append(value)
print(my_dict)

6.计数器:统计每个字符出现的次数

res='flghafgasdfhasfaksdjfhasldk'
from collections import counter
ret=counter(res)
print(ret)

time与datetime模块

时间的三种表现形式:1.时间戳,2.结构化时间(机器识别),3.格式化时间(人识别)

# 格式化时间
print(time.strftime('%Y-%m-%d'))  # 2021-11-25
print(time.strftime('%Y-%m-%d %H:%M:%S'))  # 2021-11-25 11:48:34
print(time.strftime('%Y-%m-%d %X'))  # 2021-11-25 11:48:34
import datetime
# print(datetime.date.today())  # 2021-11-25
# print(datetime.datetime.today())  # 2021-11-25 12:15:11.969769
"""date年月日  datetime年月日时分秒  time时分秒(MySQL django后期可以)"""
# res = datetime.datetime.today()
# print(res.year)  # 2021
# print(res.month)  # 11
# print(res.day)  # 25
# print(res.weekday())  # 获取星期(weekday星期是0-6) 0表示周一
# print(res.isoweekday())  # 获取星期(weekday星期是1-7) 1表示周一
"""时间差(timedelta)"""
# ctime = datetime.datetime.today()
# time_tel = datetime.timedelta(days=3)
# print(ctime)  # 2021-11-25 12:20:48.570489
# print(ctime - time_tel)  # 2021-11-22 12:21:06.712396
# print(ctime + time_tel)  # 2021-11-28 12:21:06.712396
"""
日期对象 = 日期对象 +/- timedelta对象
timedelta对象 = 日期对象 +/- 日期对象

python--re模块及爬取红牛分公司实战演练相关推荐

  1. 简单爬取红牛分公司基本数据part01

    简单爬取红牛分公司基本数据part01 此教程利用requests.re.pandas三个模块完成爬取. 导入模块: import requests import re import pandas获取 ...

  2. 列表表达式爬取红牛分公司数据

    列表达式爬取红牛官网分公司信息 import requests import pandas as pd import bs4 response = requests.get("http:// ...

  3. 正则表达式爬取红牛分公司数据

    正则表达式还是很好玩的,爬取红牛官网分公司信息 import requests import re import pandas as pd response = requests.get(url=&q ...

  4. 2021春项目需求记录 python实现模拟登录+爬取NASA Modis 上的产品数据

    python实现模拟登录+爬取Nasa Modis 上的产品数据 概述 需求分析 基本思路 代码 概述 3月的中旬时候参与了学校的一个大创项目,作为本科生,本人只是摸鱼打杂,负责了其中的一个功能模块: ...

  5. 【Python爬虫】从零开始爬取Sci-Hub上的论文(串行爬取)

    [Python爬虫]从零开始爬取Sci-Hub上的论文(串行爬取) 维护日志 项目简介 步骤与实践 STEP1 获取目标内容的列表 STEP2 利用开发者工具进行网页调研 2.1 提取文章链接和分页链 ...

  6. 使用python和PyQt5编写爬取百度图片的界面工具

    使用python和PyQt5编写爬取百度图片的界面工具 本篇文章的主要内容是展示我个人编写的,以界面小工具的方式爬取百度上面的图片,功能很单一,根据关键词爬取图片,代码很简单,新手上路请多指教. 代码 ...

  7. python用akshare批量爬取金融数据并保存为excel格式

    python用akshare批量爬取数据并保存为excel格式 爬取的网站为http://vip.stock.finance.sina.com.cn/mkt/#hs_a的历史数据 首先,确定好你 下载 ...

  8. python多线程爬取多个网址_【Python爬虫】多线程爬取斗图网站(皮皮虾,我们上车)...

    原标题:[Python爬虫]多线程爬取斗图网站(皮皮虾,我们上车) 斗图我不怕 没有斗图库的程序猿是无助,每次在群里斗图都以惨败而告终,为了能让自己在斗图界立于不败之地,特意去网上爬取了斗图包.在这里 ...

  9. Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(下)

    在Python爬虫实战(1) | 爬取豆瓣网排名前250的电影(上)中,我们最后爬出来的结果不是很完美,这对于"精益求精.追求完美的"程序猿来说怎么能够甘心 所以,今天,用pyth ...

最新文章

  1. 美国国会议员也是“BCH—HODLING”
  2. Linux_Centos中搭建nexus私服
  3. c语言最长公共子序列_LCS(最长公共子序列)
  4. 【开源项目】特斯拉+树莓派实现车牌识别检测系统
  5. apache 统计404日志_Apache监控与调优(四)Apachetop监控
  6. Ubuntu 10.4速配指南
  7. (7)Redis-Cluster集群理论及实践【上】
  8. floyd与传递闭包
  9. project2019安装教程
  10. 2022年第五届全国青少年人工智能创新挑战赛
  11. python二维数组第一列_Python遍历numpy数组的实例 python中如何提取一组数据中的第一列数据...
  12. Fiddler Everywhere抓包之视频下载
  13. 程序员制作epub电子书
  14. 安卓手机管理器_安卓如何看撤回的微信
  15. 一条命令(dd)制作Centos(Linux)优盘(U盘)启动盘
  16. trunk vlan pvid 学习实验整理 2
  17. 小程序 - 分享功能
  18. ue4挂载其他工程生成的pak,打开level
  19. python3 格式化字符串 f-string 介绍
  20. cmake:用于搜索mysql的FindMySQL.cmake及bug溯源及修复

热门文章

  1. Mbps、Kbps、bps、MB、KB、B、b的区别
  2. 利用Excel自带的数据分析工具进行回归分析
  3. 2021-09-10 LeetCode1894-找到需要补充粉笔的学生编号(每日一题)
  4. 小米系硬件查询保修日期
  5. Javaweb二手交易平台(完整版)
  6. python函数大全书籍京东_用python爬取京东图书排行榜并进行数据整合
  7. 西安理工大学计算机科学与工程学院官网,罗靖-西安理工大学计算机科学与工程学院...
  8. winform程序使用clickonce方式发布之后点击安装没反应
  9. 几何基础 罗德里格公式
  10. 佳人何处有,明月寄相思