情景
之前写过一个简单的爬虫,每天获取公司insgtagram主页的粉丝数用来进行粉丝趋势的展示。代码很简单就是通过获取主页源代码后用正则表达式匹配其中的一串json数据,再用python的json解析库进行解析,从中获取粉丝数。
然而昨天这个爬虫报错了,我重新看了一下ins主页的网页源代码,发现其中增加了一段内容,这段内容正好被我匹配进去了。经过思考显而易见,这是贪婪匹配的问题。
贪婪匹配与非贪婪匹配
现在这些术语听起来都很吓人,其实这是正则匹配的两种模式,很容易解释:
- 贪婪匹配:尽可能匹配最长的字符串
- 非贪婪匹配: 尽可能匹配最短的字符串
举个例子:aa<div>test1</div>bb<div>test2</div>cc
如果想要匹配一个完整的div,贪婪模式的结果为:<div>test1</div>bb<div>test2</div>
非