匹配的分类
按照匹配内容进行匹配
我们在匹配的过程当中,按照要匹配的内容的类型和数量进行匹配
比如:
匹配手机号:匹配以1开头的11位数字
Re
按照匹配结构进行匹配
我们我们在匹配的过程当中,按照要匹配的内容在整个数据当中的结构进行匹配
比如:
匹配手机号:匹配phone:之后的值
Xpath
Beautifulsoup 是一个匹配的结合体,我们使用beautifulsoup可以完成内容和结构任意匹配。
内容匹配,匹配繁琐,匹配精度高
机构匹配,匹配精度不高,匹配效率高,一定是成结构的字符
re正则
正则是通过对字符串内容描述进行数据筛选的高级字符串处理方式
在学习Python爬虫的时候,初学同学会认为非正则不可,其实一部分简单的匹配结构用的最多的方法是字符串的:split、replace方法
内容的类型
#每个类型默认匹配1次
\d 匹配数字
\D 匹配非数字
\s 匹配空格
\S 匹配非空格
\w 匹配字母、数字、下划线
\W 匹配非字母、数字、下划线
[] 匹配任意字符
| 匹配任意一端
[^] 匹配非
. 匹配任意非换行的字符
^ 匹配开头
$ 匹配结尾
() 组匹配
内容的长度
长度描述居于内容描述之后
如果有多次,指尽量多的匹配
如果匹配0次,代表没有匹配到
* 匹配0到多次
+ 匹配1到多次
? 匹配0到1次
{} 匹配指定值或者范围次
贪婪匹配
匹配的方法
Findall
Search
Match
正则例子:
例1:
一个正常的正则匹配,匹配一个网页上所有的身份证号,最简单
匹配身份证号,一般是匹配数字,但是要小心最后有x
首先编写如下代码:
import re
import requests
# 请求地址
url = "http://sfz.ckd.cc/"
# 请求头
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 1