首页 > 代码库 > 用正则表示式分析网页
用正则表示式分析网页
昨晚现学现卖了一下正则表达式,记录一下
爬的网页:http://www.qiushibaike.com/hot/page/1/?s=4930745
首先来看源码
<a href="http://www.mamicode.com/users/13145907/" target="_blank" rel="nofollow"> <img src="http://pic.qiushibaike.com/system/avtnew/1314/13145907/medium/20140731141650.jpg" alt="一个小时的好汉"/> </a> <a href="http://www.mamicode.com/users/13145907/" target="_blank" title="一个小时的好汉"> <h2>一个小时的好汉</h2> </a> <div class="articleGender manIcon">28</div> </div> <a href="http://www.mamicode.com/article/117979974" target="_blank" class=‘contentHerf‘ > <div class="content"> <span>今天给儿子去买小笼包,旁边有个拾荒的老大爷手里就拿着一块钱问,包子怎么卖,老板说五块一笼,抬头看老大爷愣了一下,老大爷转身缓缓的走了,就听见老板在后面喊,老大爷,小笼包五块一笼,这里的包子一块钱三个,老板从别的大笼里面,夹出三个热腾腾的大肉包,当时有点莫名的感动!老板你是个好人</span> </div> </a> <div class="stats"> <span class="stats-vote"><i class="number">13550</i> 好笑</span> <span class="stats-comments"> <span class="dash"> · </span> <a href="http://www.mamicode.com/article/117979974" data-share="/article/117979974" id="c-117979974" class="qiushi_comments" target="_blank"> <i class="number">457</i> 评论
获取的源码里还有很多空格,这里为了显示方便手动删去了,其中加粗的部分,就是要获得的作者、内容、点赞数、评论数,这里首先强调一下一个很有用的表达式:
.*?
.*可以匹配任意多个字符,?指非贪婪模式,即会在满足条件的情况下尽可能短,经过多次实验,要匹配这种整段的还是不能偷懒,多用一些有特征的语句,比如
<div class="stats">,这种具有特殊性,多用几个就可以限定整段,需要注意的是换行符也需要匹配一下,现在详细说明一下
1. <a href="http://www.mamicode.com/users.*?title=" 匹配
<a href="http://www.mamicode.com/users/13145907/" target="_blank" rel="nofollow"> <img src="http://pic.qiushibaike.com/system/avtnew/1314/13145907/medium/20140731141650.jpg" alt="一个小时的好汉"/> </a> <a href="http://www.mamicode.com/users/13145907/" target="_blank" title="
开始用的是<a.*?title=",发现<a开头的太多了,匹配了过多的内容,记得勾选正则表示式和.匹配新行,效果如下:
2.<a href="http://www.mamicode.com/users.*?title=".*?">.*?<div class="content">
3. <a href="http://www.mamicode.com/users.*?title=".*?">.*?<div class="content">.*?<span>.*?</span>.*?"number">.*?</i>.*?number">.*?</i> 匹配全部
用正则表示式分析网页
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。