用正则表示式分析网页

昨晚现学现卖了一下正则表达式,记录一下

爬的网页:http://www.qiushibaike.com/hot/page/1/?s=4930745

首先来看源码

<a href="/users/13145907/" target="_blank" rel="nofollow">
<img src="http://pic.qiushibaike.com/system/avtnew/1314/13145907/medium/20140731141650.jpg" alt="一个小时的好汉"/>
</a>
<a href="/users/13145907/" target="_blank" title="一个小时的好汉">
<h2>一个小时的好汉</h2>
</a>
<div class="articleGender manIcon">28</div>
</div>
<a href="/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="/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="/users.*?title=" 匹配

<a href="/users/13145907/" target="_blank" rel="nofollow">
<img src="http://pic.qiushibaike.com/system/avtnew/1314/13145907/medium/20140731141650.jpg" alt="一个小时的好汉"/>
</a>
<a href="/users/13145907/" target="_blank" title="

  开始用的是<a.*?title=",发现<a开头的太多了,匹配了过多的内容,记得勾选正则表示式和.匹配新行,效果如下:

2.<a href="/users.*?title=".*?">.*?<div class="content">

3. <a href="/users.*?title=".*?">.*?<div class="content">.*?<span>.*?</span>.*?"number">.*?</i>.*?number">.*?</i> 匹配全部

时间: 2024-10-13 22:20:37

用正则表示式分析网页的相关文章

C#抓取和分析网页的类

抓取和分析网页的类. 主要功能有: Ontology 1.提取网页的纯文本,去所有html标签和javascript代码 2.提取网页的链接,包括href和frame及iframe 3.提取网页的title等(其它的标签可依此类推,正则是一样的) 4.可以实现简单的表单提交及cookie保存 /**  Author:Sunjoy at CCNU*  如果您改进了这个类请发一份代码给我(ccnusjy 在gmail.com)*/ using System;using System.Data;usi

实时数据流式分析改变商业游戏规则

近些年,大数据流式处理的讨论热了起来,就在去年,阿里巴巴向apache基金会贡献了java语言版的Jstorm,国内的厂商或个人,随着技术的积累,正在逐步的加入这场世界变革当中.那么,为什么现在企业会越来越关注大数据的流式处理呢?仅仅对大容量的离线数据分析挖掘,已经逐渐满足不了企业不断增长的需求,新的技术和理论必将应运而生. 大容量的数据必须能够被极快速的处理,从而让企业的决策者能够迅速的根据市场变化而改变战略,这将成为未来商业,在满足客户不断延伸的需求,提供差异化服务的阿喀琉斯之踵.类似的需求

PHP抓取及分析网页的方法详解

本文实例讲述了PHP抓取及分析网页的方法.分享给大家供大家参考,具体如下: 抓取和分析一个文件是非常简单的事.这个教程将通过一个例子带领你一步一步地去实现它.让我们开始吧! 首先,我首必须决定我们将抓取的URL地址.可以通过在脚本中设定或通过$QUERY_STRING传递.为了简单起见,让我们将变量直接设在脚本中. ? 1 2 3 <?php $url = 'http://www.php.net'; ?> 第二步,我们抓取指定文件,并且通过file()函数将它存在一个数组里. ? 1 2 3

对正则表示式及grep的总结

正则表达式学习总结     什么是正则表达式 正则表达式,又称正规表示法.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列符合某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些符合某个模式的文本. 一.正则表达式的各个元字符 (1)字符匹配: . -->表示匹配任意单个字符 [] --> 匹配指定范围内的任意单个字符 [^]:取反 (2)次数匹配元

抓取分析网页批量下载评书(上)之搜索有声小说

一.背景 母亲喜欢听评书,跟着广播每天一集总觉得不过瘾,于是2010年给她买了一个带内存,能播放MP3的音箱,从此给她找评书便成了我的责任和义务. 一开始开始还好,单先生说的书多,找起来不困难, 但随着听的越多,加上听惯了单先生的,其他人的母亲都不喜欢,即便单先生的,类似白眉大侠.童林传等武侠类的她也不爱听(本人也不是很喜欢,规律都差不多,自己被欺负了,找兄弟,再不行找师傅,还不行,找师祖,总之一句话你等着,我叫人去),后来实在找不到了,也慢慢的试着听孙一,张少佐等其他人的了. 电驴被封后,而能

分层、链式分析、url、联系的长度

分层.链式分析.url.联系的长度. 分层结构符合软件处理的工具链性和步骤性: 分层的每一次都是一个节点或步骤: 链式结构普遍存在于自然界,比如食物链: 联系是普遍存在的,不只是两个事物间的联系,而且可以以联系链的方式存在: 蝴蝶效应是联系链的很好说明. 原文地址:https://www.cnblogs.com/feng9exe/p/8203665.html

通过chrome浏览器分析网页加载时间

今天趁着下班的时间看了下chrome浏览器的网页加载时间分析工具和相关文档,简单写点儿东西记录一下. 以百度首页加载为例,分析下一张图片1.jgp(就是背景图)的加载时间 看右侧的Timing标签,从下往上看各个阶段: 最下面一行,Explanation是一个链接,它链接到了chrome对Timing解释的文档(从这里可以看出chrome对开发人员真的很友好),这张图片加载总共花费的时间为:36.32ms. Content Download,浏览器下载响应文件所花费的时间26.84ms,与本地网

字符串分析网页源码

在特殊的情况下,我们不能使用TWebBrowser来进行源码的分析,那么我们怎么从String里提取我们需要的链接和文本呢?以下是我查阅网络上的一些方法. 获取网站链接:(此方法获取的链接不是绝对链接,需要自己写个替换) procedure TForm1.Button1Click(Sender: TObject); var doc:IHTMLDocument2; ln:IHTMLAnchorElement; i:integer; vHTML : OleVariant; begin doc:=Co

2016/7/13 23:39:43 xPath 分析网页元素

1. 采用QQ浏览器 , 当前以获取qiushibaike里面的内容以及好笑,评论数为例 选择需要抓取的内容,然后右键检查  会出现一个调试界面,在 elements 里面选择需要抓取的信息,右键 copy - copy XPath 3. 接下来 可以到 console 界面调试一下抓取的信息(妹的,这么强悍) 使用 $x('XPath') 可以抓到相关信息 4. 相应的我们可以得到相关Xpath 1.内容 //*[@id="qiushi_tag_116975883"]/div[2]