Regular Expression, 正则表达式, 一种使用表达式的方式对字符串进行匹配的语法规则.
我们抓取到的网页源代码本质上就是一个超长的字符串, 想从里面提取内容.用正则再合适不过了.
正则的优点: 速度快, 效率高, 准确性高 正则的缺点: 新手上手难度有点儿高.
不过只要掌握了正则编写的逻辑关系, 写出一个提取页面内容的正则其实并不复杂
正则的语法: 使用元字符进行排列组合用来匹配字符串 在线测试正则表达式在线正则表达式测试
1.2.1 findall
查找所有. 返回list
lst = re.findall("m", "mai le fo len, mai ni mei!")
print(lst) # ['m', 'm', 'm']
lst = re.findall(r"d+", "5点之前. 你要给我5000万")
print(lst) # ['5', '5000']
1.2.2 search
会进行匹配. 但是如果匹配到了第一个结果. 就会返回这个结果. 如果匹配不上search返回的则是None
ret = re.search(r'd', '5点之前. 你要给我5000万').group()
print(ret) # 5
1.2.3 match
只能从字符串的开头进行匹配(再见)
ret = re.match('a', 'abc').group()
print(ret) # a
1.2.4 finditer
和findall差不多. 只不过这时返回的是迭代器(重点)
1.2.5 compile
可以将一个长长的正则进行预加载. 方便后面的使用
1.2.6 正则中的内容如何单独提取?
单独获取到正则中的具体内容可以给分组起名字
这里可以看到我们可以通过使用分组. 来对正则匹配到的内容进一步的进行筛选.
1.2.7 做内容替换
正则表达式本身是用来提取字符串中的内容的. 也可以用作字符串的替换
pip install bs4
2.2.1 find 与find_all 通用查询方案
从名字上看. 一个是查找一个, 另一个是查找所有.
- find, 在页面中查找一个结果, 找到了就返回
- find_all, 在页面中查找一堆结果. 找完了才返回
2.2.2 css选择器
- select_one(选择器) 使用选择器获取html文档中的标签, 拿一个
- select(选择器) 使用选择器获取html文档中的标签, 拿一堆
xpath是一种非常简单好用的页面提取方案. 使用前. 请安装好lxml模块
pip install lxml
1.2 xpath语法
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/45249.html