我们来整理一下爬虫所用到的一些重点
推荐一个小网站,可以进行练手
在线正则表达式测试https://tool.oschina.net/regex/
元字符
1 “ . ”匹配除换行符以外的任意字符,未来在python的re模块中是一个坑.
2 \d 匹配数字
3 ^匹配字符串的开始
4 $匹配字符串的结尾
5 a l b匹配字符α或字符h
6 () 匹配括号内的表达式,也表示一个组
量词:控制前面元字符出现的次数
其实比较重要的是惰性匹配(前后离他最近的,用到了回溯算法)
1. 贪婪匹配( 后离他最远的)
2. 惰性匹配(找最近的,相当于(【字】.*?【字】),只要符合这种的,会被找到
前后离他最近的,用到了回溯算法(常用)
import re
message = """<a><div>中国移动</div><div>10086</div></a>
<a><div>中国联通</div><div>10010</div></a>
"""
obj = re.compile(r'<div>(?P<name>.*)</div><div>(?P<id>\d+)</div>')
# result = obj.findall(message) # 返回一个列表 findall
# print(result)
result = obj.finditer(message) # 预加载可以减少内存消耗
print(result) # 返回一个迭代器 (若要显示(数据)有个分组标记)# (?P<名字>正则)
for item in result:
# print(item)
print(item.group("name"))
print(item.group("id"))
之后会在resquests之后讲一下案例