爬虫中正则表达式匹配多行HTML
在利用Python抓取网页时,需要利用正则表达式匹配多行HTML,HTML如下:
代码如下:
patren1 = '<div class="content">.*?<span>(.*?)</span>'
dataList = re.compile(patren1,re.S).findall(data)
’.’ 在正则表达式中匹配除 ‘\n’ 以外的任意字符,它只在一行中进行匹配,不会进行跨行匹配,如果一行没有,就从下一行重新开始。
添加 re.S 参数之后,正则表达式会将这个字符串作为一个整体,将“\n”当做一个普通的字符加入到这个字符串中,在整体中进行匹配。
’.*?
、 .*
和 .+?
.*? 为非贪婪模式,尽可能的少匹配字符;
.* 为贪婪模式,尽可能的少匹配字符;
‘*’ 匹配0,1,2…次字符; ‘+’ 匹配1,2,3…次字符。