re模块
在Python中要想试用正则表达式,就要借助于re模块
import re
ret = re.findall('a', 'eva egon yuan') # 返回所有满足匹配条件的结果,放在列表里
print(ret) #结果 : ['a', 'a']
ret = re.search('a', 'eva egon yuan').group()
print(ret) #结果 : 'a'
# 函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回一个包含匹配信息的对象,该对象可以
# 通过调用group()方法得到匹配的字符串,如果字符串没有匹配,则返回None。
ret = re.match('a', 'abc').group() # 同search,不过尽在字符串开始处进行匹配
print(ret)
#结果 : 'a'
爬去红牛官网数据
with open('redbull.txt', 'r', encoding='utf-8') as f:
data = f.read()
title_list = re.findall('<h2>(.*?)</h2>', data)
address_list = re.findall("<p class='mapIco'>(.*?)</p>", data)
email_list = re.findall("<p class='mailIco'>(.*?)</p>", data)
phone_list = re.findall("<p class='telIco'>(.*?)</p>", data)
all_list = list(zip(title_list, address_list, email_list, phone_list))
for item in all_list:
print("""
公司:%s
地址:%s
邮箱:%s
电话:%s
""" % (item[0], item[1], item[2], item[3]))
time模块
time.sleep(3)
time.time() # 秒数
'''
三种格式:
1. 时间戳
2. 结构化时间
3. 格式化时间
'''
datetime模块
import datetime
# print(datetime.datetime.today())
# print(datetime.datetime.now())
# print(datetime.date.today())
res=datetime.datetime.today()
# print(res.year)
# print(res.month)
# print(res.day)
# print(res.hour)
# print(res.second)
# print(res.minute)
# print(res.weekday())
# print(res.isoweekday())
# 重点 时间差
# timedelta对象
# 可以对时间进行运算操作
# 获得本地日期 年月日
tday = datetime.date.today()
# 定义操作时间 day=7 也就是可以对另一个时间对象加7天或者减少7点
tdelta = datetime.timedelta(days=3)
print(tday + tdelta)
"""
日期对象 = 日期对象 +/- timedelta对象
timedelta对象 = 日期对象 +/- 日期对象
验证:
"""
# 定义日期对象
# now_date1 = datetime.date.today()
# # 定义timedelta对象
lta = datetime.timedelta(days=6, hours=10, minutes=20, microseconds=1111,weeks=4)
# now_date2 = now_date1 + lta # 日期对象 = 日期对象 +/- timedelta对象
# print(type(now_date2)) # <class 'datetime.date'>
#
# print(now_date2)
# lta2 = now_date1 - now_date2 # timedelta对象 = 日期对象 +/- 日期对象
# print(lta2)
# 小练习 计算举例今年过生日还有多少天
birthday = datetime.date(2022, 12, 21)
now_date = datetime.date.today()
days = now_date - birthday
print('生日:{}'.format(birthday))
print('今天的日期:{}'.format(tday))
print('距离生日还有/{}天'.format(days))
import datetime
# dt_today = datetime.datetime.today()
# dt_now = datetime.datetime.now()
dt_utcnow = datetime.datetime.utcnow() # UTC时间与我们的北京时间cha ju
print(dt_utcnow)
random模块
def get_code(n=4):
code = ''
for i in range(n):
num = str(random.randint(0, 9))
'''
chr:
ord
'''
# A-Z
upper = chr(random.randint(65, 90)) # a:97
# a-z
lower = chr(random.randint(97, 122))
code += random.choice([num, lower, upper])
return code
code = get_code(4)
code1 = get_code(8)
code2 = get_code(10)
print(code)