一、 正则表达式特殊符号含义
A 匹配规则
1、{}实质也是限定词的用法,限定前面字符所出现的次数,跟在()后面就是限定括号中的内容所出现的次数。一般有三种模式:
{数字}、{数字,}、{数字,数字}
2、竖线 | 实质上就是或(or)的关系
3、[] 其意思是方括号中的字符只要满足其中任何一个就可以。
[^字符]表示取除方括号字符以外所有的字符
4、[\u4E00-\u9FA5] 匹配一个汉字,要是想匹配多个汉字那就在方括号后边加一个加号:[\u4E00-\u9FA5]+
注意:要匹配多个汉字时,汉字之间必须连续,不能有其他字符,如字母、空格,标点等。
5、\w 匹配
借鉴文章:
https://blog.csdn.net/weixin_34235371/article/details/88262507
B 方法
1、match() 从头开始匹配 match('规则', html,re.S)
2、search() 扫描整个字符串,可不从头匹配,但只匹配到第一个符合规则的,search('规则',html,re.S)
3、findall() 扫描整个字符串,可不从头匹配,匹配到所有符合规则的 findall('规则',html,re.S)
4、sub() 替换 / 去除某些元素 sub('规则',要去替换的元素,html)
5、complie() 将正则表达式编译成正则表达式对象,以便后面匹配中复用 compile(规则)
二、 BeautifulSoup(from bs4 import BeautifulSoup)
BeautifulSoup(html,'解析器')
(1) BeautifulSoup支持的解析器有:
解析器 | 使用方法 | 优势 | 劣势 |
---|---|---|---|
python标准库 | BeautifulSoup(markup,'html.paeser') | python的内置标准库、执行速度适中、文档容错能力强 | python 3.2.2之前版本文档容错能力差 |
lxml HTML解析器 | BeautifulSoup(markup,'lxml') | 速度快、文档容错能力强 | 需要安装C语言库 |
lxml XML解析器 | BeautifulSoup(markup,'xml') | 速度快、唯一支持XML的解析器 | 需要安装C语言库 |
html5lib | BeautifulSoup(markup,'html5lib') | 最好的容错性、以浏览器的方式解析文档、生成HTM5 格式的文档 | 速度慢、不依赖外部扩展 |
(2) 方法
find_all(name,strrs) 找出所有符合规则的
find(name,atrrs) 找出第一个符合规则的
CSS选择器select() 找出所有符合规则的 # 推荐使用这个,因为chrome开发者工具能够复制规则。
网友评论