python爬虫学习(一 认识基本的正则表达式)

import re

#re:用于提取字符串内容的模块

#1>创建正则对象; 2>匹配查找; 3>提取数据保存;

string =

"""
<html>
<div><a href='www.baidu.com'></a></div></div></div>
</div><title>正则</title></div>
<html><div><a href='www.baidu1.com'></a></div>
</div></div></div><title>正则1</title></div>
<html><div><a href='www.baidu2.com'></a>
</div></div></div></div><title>正则2</title></div>
<html><div><a href='www.baidu3.com'>
</a></div></div></div></div><title>正则3</title></div>"""
#()是提取的一组数据 re.S可以将正则的搜索域不再是一行, 而是整个HTML字符串
pattern = re.compile(r"<a href='(.*?)'>.*?<title>(.*?)</title>"),re.S
#用正则匹配元素时. 注意双引号和单引号都要跟元码保持一致而且注意区分单双引号.
#.*?费贪婪匹配
#.*贪婪匹配
#findall()返回是列表
res = re.findall(pattern, string)
#查出匹配的 string 结果符合 pattern 条件的所有元素
print(res)#查找单个数据:search():不考虑数据的位置. match():必须保证数据在目标字符串的 !!!!起始位置!!!
string = "a12345boooooobccccccb"
#a.*?b a12345b
#a.*b a12345boooooobccccccb
#费贪婪匹配匹配到第一个符合条件的就会返回,贪婪匹配会匹配到最后一个符合条件的.拿到更多数据,我们一般用非贪婪匹配



 
重点,正则表达式掌握这些基本能够应付常见问题,,注意findall返回的是一个列表啊,列表支持索引能够迭代,后期会经常用于比较复杂的爬虫应用.其中的两个参数!!!牢记(要么死,要么学)








猜你喜欢

转载自www.cnblogs.com/pythonzhang/p/9215177.html