Python学习之正则表达式Re

Python学习之正则表达式Re

#前言
哈喽,大家好!我是Eric,张先森,东北读研,陕西人。
本人环境工程专业研一在读,因为我们理工科专业平时需要做实验、处理数据,查阅文献资料等,用传统方法费时又费力,所以自己想着能不能借助编程语言来解决这些问题,提高工作效率。再加上今年由于疫情的原因,一直在家里,所以有大块的时间可以做一些自己觉得有趣且有用的事情。于是就开始了解,有那种编程语言适合毫无编程基础的小白学习。经过和朋友交流、上网了解,再结合自身的优势和劣势,最终决定学习Python语言。(Python语言的优势不用我多说,相信大家都有所了解,你是否决定要学,看下图。)
在这里插入图片描述
做完选择与决定之后,就立刻开始行动。从2020.4.16开始到现在,大概两个多月的时间,先后在【中国大学MOOC】平台上学习了由北京大学陈斌老师所主讲的《Python语言基础与应用课程》、北京理工大学嵩天老师所主讲的《Python语言程序设计课程》和《Python网络爬虫与信息提取课程》。经过两个月的学习基本了解并理解了Python语言基础语法和基本数据类型以及简单的网络爬虫知识。
但是,根据多年学习经验,深知光靠书本知识是无法让你真正掌握一门技能的,必须“理论结合实际”才能看到成效。而且,我认为学习Python和我们做科研有相同之处。做科研,你需要”线上查资料看文献+线下与人交流沟通+做实验验证+反思总结提升”。所以,我认为学习Python也需要,“看视频看书学习基础知识+动手敲代码练习+实践中遇到问题再查阅、反思+与人交流+每日学习总结”。因此,有了今天我的第一篇学习总结也算是分享,希望能够对看到这篇文章的小白,有所帮助。之后,我也会陆续分享关于自己学习Python语言的过程中,遇到的问题和解决办法、高质量的课程和书籍、以及常用的网站等等。
今天,我们先来了解了解正则表达式Re。
在这里插入图片描述
#1.什么是正则表达式Re
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。re 模块使 Python 语言拥有全部的正则表达式功能。简单来说,Re就是用来简洁表达一组字符串的表达式。

#2.Re有一些主要的功能函数需要记忆:
re.search(pattern, string, flags=0)函数
re.match(参数同上)函数
re.findall(参数同上)函数
re.split(pattern, string, maxsplit=0, flags=0)函数
re.finditer(参数同serach)函数
re.sub(pattern, repl, string, count=0, flags=0)

在这里插入图片描述
#3.需要记忆的常用操作符:
在这里插入图片描述
#4.需要记忆Re的修饰符:

在这里插入图片描述
以上几点是我在学习Re时,觉得需要掌握的重点。对于像我这样的初学者来说同时也是难点。尤其是理解Re的常用操作符,并且学会如何使用Re的主要功能函数,去编写一行简洁且实用性强的代码。自己这两天也在消化理解,希望今天的总结对大家有帮助。

最后附上批量爬取百度图片的代码,其中也有正则表达式的运用,我们可以结合实例,加深理解。(好啦,今天就到这里。改天再见!)

#5.Python批量爬取科比高清图片实例:

import re
import requests
import time

start = time.perf_counter()
word = input('请输入关键词:')
url = 'https://image.baidu.com/search/index?tn=baiduimage&ct=201326592&ie=utf-8&sid=&word='+word+''
data = requests.get(url).text

jpglist = re.findall('"objURL":"(.*?)",', data, re.S)
#thumbURL 和 middleURL是缩小的版本; hoverURL 是鼠标移动过后显示的版本,objURL 应该是我们需要的,可以分别打开这几个网址看看,发现 objURL 的那个最大最清晰。

n = 1
for each in jpglist:
    print(each)
    try:
        Pictures = requests.get(each, timeout = 10)
    except:
        print("下载失败!")
        continue
    string = 'F:\\zhang\\Pictures\\kobe\\' + str(n) +'.jpg'
    fp = open(string, 'wb')
    fp.write(Pictures.content)
    fp.close()
    n += 1
    dur = time.perf_counter() - start
    print("\n{:.2f}s".format(dur), end="")


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值