一、Python正则表达式

1、正则表达式的概念
通过一组特殊的字符串按照指定的序列定义的一种规则,称为正则表达式。

2、正则表达式的主要作用
主要用于用户输入的数据进行验证,验证用户输入的数据是否符合定义的规则。

3、正则表达式基本语法
例如对手机号码进行正则表达式的编写
reg=^1[35789]\d{9}$
^:表示开始
1:表示第一个字符为数字1
[35789]:从指定的字符中选择一个
\d:表示数字
{n}:n表示数字的个数,表示任意n个数字
+:表示1到n次,字符串出现的次数
*:表示0到n次,字符串出现的次数
?:表示0到1次
w:表示任意字母

4、python中使用re模块定义正则
Import re

5、re中常用的方法

(1)match方法

从第一个字符开始匹配,如果第一个起始字符不匹配,则返回None

python 正则提取数字为列表 python 正则 数字_html

运行效果如下:

python 正则提取数字为列表 python 正则 数字_字符串_02

(2)使用group方法进行正则匹配

分组根据正则表达式匹配指定的字符,并返回字符信息

python 正则提取数字为列表 python 正则 数字_python 正则提取数字为列表_03


运行结果如下:

python 正则提取数字为列表 python 正则 数字_正则表达式_04


(3)seach方法

扫描整个字符串并进行比对,返回第1个成功的匹配位置

python 正则提取数字为列表 python 正则 数字_字符串_05

结果如下:

python 正则提取数字为列表 python 正则 数字_正则表达式_06

二、python中的爬虫

1、主要用于爬取网页中的数据
2、当前网络传输协议
(1)http协议:超文本传输协议,传输的数据格式为html(超文本标记语言)
(2)Https协议:具有安全验证的超文本传输协议,加入了ssl安全证书
(3)ssl:安全套接字协议证书

3、http请求的方式
(1)GET请求方式:请求的参数信息会显示在地址栏中,传输的参数个数不能超过255个字符。
(2)POST请求方式:请求的信息是隐藏的,不会显示在地址栏中,向服务器传递的数据可以达到20M。

4、URL
统一资源定位,实际为请求的网络资源地址。
例如:
http://www.sohu.com/index.html

5、请求的状态码
(1)200:表示请求的资源已响应成功。
(2)404:表示资源不存在
(3)500:请求资源成功,但是服务器内部错误
(4)403:请求的服务器忙,无法响应。

6、网页请求的调试工具
(1)Fiddler:用于调试请求响应的页面信息
(2)浏览器自带的调试工具,按F12显示调试的网页信息

7、使用urllib爬取网页信息
(1)python3以上版本使用urllib2,引入的组件库为:
Import urllib.request

(2)获取html对象的方法
html=urllib.request.urlopen(“url地址”);
例如,获取百度首页信息
html=urllib.request.urlopen(“http://www.baidu.com”);

(3)读取网页信息
x=html.read();

示例如下:
import urllib.request

#获取请求对象
request=urllib.request.Request(“https://www.sohu.com”)

#User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36
request.add_header(“User-Agent”,“Mozilla/5.0”) #用于反爬虫处理,伪装为火狐浏览器访问
html=urllib.request.urlopen(request)

print(html.read())

完整的请求响应代码如下所示:

python 正则提取数字为列表 python 正则 数字_正则表达式_07


结果如下:

python 正则提取数字为列表 python 正则 数字_正则表达式_08

(4)使用urllibencode转换字典为搜索的url字符串格式
Urllib.parse.urlencode(字典对象)

示例如下:从键盘输入要搜索的信息进行baidu查询

python 正则提取数字为列表 python 正则 数字_html_09


结果如下:

python 正则提取数字为列表 python 正则 数字_html_10