爬虫中常用的正则表达式
写爬虫的时候,很多时候是需要筛选数据的,可以采用的方法有正则、xpath等,个人比较习惯用正则来筛选,下面给出几个个人比较常用的正则表达式,和大家一起交流下
aa(\S+?)bb
"\S+"表示筛选非空的字符串,?表示非贪婪模式,根据前后文进行匹配,一般我用它来匹配一些url,这种中间不会出现空格的数据
aa(\d+)bb
"\d+"表示筛选数字字符串,根据前后文进行匹配,一般用来匹配一下电话号码这类数据
aa(\D+)bb
"\D+"表示筛选非数字字符串,一般用来匹配一些纯字母的数据
aa(.*?)bb
".*"表示筛选aa和bb之间的任意数据,?表示非贪婪模式,常用于匹配一些较复杂的字符串,注意:如果中间字符串包含\n,则匹配不成功,应用下面的表达式
aa([.\n]*?)bb
同上,不过字符串中间包含\n也可以匹配
aa([^ab]+)bb
"[^ab]+"表示匹配除了ab之外的任意字符串,常用于匹配一些标题类的数据例如<div>([^<>]+</div>)
注:一般情况下可以用+替换,+也可以用替换,*表示可以匹配0~n个,+表示匹配1~n个,想怎么用可以酌情考虑,大多数的时候是可以通用的
当然,还有很多正则表达式都很好用,只是个人习惯用这几个,大家有好用的正则表达式也可以一起分享下
这是老魏的公众号,会发布一些爬虫案例和个人经验,欢迎大家一起来交流讨论


2120

被折叠的 条评论
为什么被折叠?



