首页 > 编程 > Python > 正文

python通配符.

2019-11-10 21:44:30
字体:
来源:转载
供稿:网友

在写爬虫的时候,遇到一个小问题,跨html标签(也就是多行)的时候,正则匹配不出来:

举例html:

<div class="nav-logo">
 <a href="https://www.douban.com">豆瓣社区</a>
 </div>

这个是我写的正则:

reg = u'<a.*?href=(.*?)>.*?</a>.*?</div>'

titleRe = re.compile(reg)
titlelist = re.findall(titleRe,html)

然后匹配出来的都是空,修改以后就匹配成功了:

reg = u'<a.*?href=(.*?)>.*?</a>.*?</div>'

titleRe = re.compile(reg,re.S)
titlelist = re.findall(titleRe,html)

原因:通配符“.”默认是不匹配换行符“/n”的,即默认只匹配一行,加上re.S后就可以匹配换行符了~~


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表