0
点赞
收藏
分享

微信扫一扫

正则表达式解析网页


正则表达式解析网页

首先将源代码变成字符串,然后用正则表达式匹配想要的数据

模式

描述

模式

描述

.

匹配任意字符,除了换行符

\s

匹配空白字符

*

匹配前一个字符0或多次

\S

匹配任何非空白字符

+

匹配前一个字符1或多次

\d

匹配数字,[0~9]

匹配前一个字符0或1次

\D

匹配任何非数字,[ ^0~9 ]

^

匹配字符串开头

\w

匹配字母数字,[A-Za-z0-9]

$

匹配字符串结尾

\W

匹配非字母数字,[ ^A-Za-z0-9 ]

( )

匹配括号内的表达式,也表示一个组

[ ]

用来表示一组字符

re.match 只能从字符串的起始位置进行匹配

语法格式

re.match(pattern,string,flags=0)

pattern:正则表达式

string:要匹配的字符串

flags:正则表达式的匹配方式

import re
s="aaa bbb ccc ddd eee"
m=re.match(r'(.*) ccc (.*? )',s)
# 匹配整个字符串的结果
print(m.group(0))
# (.*)的结果
print(m.group(1))
# (.*? )的结果
print(m.group(2))
# 结果列表
print(m.groups())

正则表达式解析网页_字符串

re.search 扫描整个字符串 返回第一个成功的匹配

s="aaa bbb ccc ddd eee"
m1=re.match('ccc',s)
m2=re.search('ccc',s)
print(m1)
print(m2)

正则表达式解析网页_正则表达式_02

re.findall 找到所有匹配的结果,并且以列表的形式返回

import re
s="aaa12313bbb6788ccc56789ddd eee"
m=re.findall('[0-9]+',s)
print(m)

正则表达式解析网页_html_03

解析网页

获取博客的标题

分析html

正则表达式解析网页_爬虫_04

编写正则表达式

<h4 data-v-6fe2b6a7>(.*?)</h4>
获取h4标签中间的标题
使用requests获取网页源代码
利用正则表达式解析网页
import re
import requests
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0'
}
url=
html=requests.get(url,headers=headers)
titles=re.findall('<h4 data-v-6fe2b6a7>(.*?)</h4>',html.text)
for i in titles:
print(i)
print(len(titles))

正则表达式解析网页_字符串_05



举报

相关推荐

0 条评论