目标页:http://www.weather.com.cn/weather/101070101.shtml
查看其网页源码,想得到425行的数据,即“今天是2013年10月16日 星期三 农历九月十二”和621行“沈阳天气预报 (2013-10-16 18:00发布)" 和641行~765行之间主要数据。用图表示一下,见下图:
另外我自己写的一条规则,试着取了下这样的数据"沈阳天气预报 (2013-10-16
11:00发布)"但输入后为空数组,求指导!多谢!
回复讨论(解决方案)
1
$s=file_get_contents('http://www.weather.com.cn/weather/101070101.shtml');preg_match('/<h1 class="weatheH1" id="live">\s+(.+)\s+<\!--today5-->/s',$s,$m);echo $m[1];
2
preg_match('/<div class="weatherYubao" id="7d">\s+<h1 class="weatheH1">\s+(.+?)\s+<span>/s',$s,$m);echo $m[1];
3 不知道你想要得到什么格式的数据。
一直都感觉正则好高端
1
$s=file_get_contents('http://www.weather.com.cn/weather/101070101.shtml');preg_match('/<h1 class="weatheH1" id="live">\s+(.+)\s+<\!--today5-->/s',$s,$m);echo $m[1];
2
preg_match('/<div class="weatherYubao" id="7d">\s+<h1 class="weatheH1">\s+(.+?)\s+<span>/s',$s,$m);echo $m[1];
3 不知道你想要得到什么格式的数据。
就是按日期,顺序取到各项值就行,文本就行,比如:星期四 白天晴 高温16摄氏度 西南风微风 夜间晴 低温3摄氏度 西南风微风(换行)...如此把这块数据都取出来
如下源码:
<!--day 1--> <table class="yuBaoTable" width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="15%" rowspan="2" class="t0" style="background:#f4f7fc;"><a title="农历九月十二">16日星期三</a></td> <td width="12%" style="background:#f4f7fc;">白天</td> <td width="10%"> <a href="http://www.weather.com.cn/static/html/legend.shtml" target="_blank"> <img src="/static/imghwm/default1.png" data-src="/m2/i/icon_weather/29x20/d00.gif" class="lazy" / alt="正则采集问题,求解,在线等" > </a> </td> <td width="18%"><a href ="http://baike.weather.com.cn/index.php?doc-view-767.php" target="_blank">晴</a></td> <td width="15%"> <a href="http://baike.weather.com.cn/index.php?doc-view-1148.php" target="_blank"> <b>高温 <strong>12℃</strong></b> </a> </td> <td width="15%"> <a href="http://baike.weather.com.cn/index.php?doc-view-778.php" target="_blank"> 东北风 </a> </td> <td width="15%"> <a href="http://baike.weather.com.cn/index.php?doc-view-778.php" target="_blank"> 微风 </a> </td> </tr> <tr> <td style="max-width:90%">夜间</td> <td> <a href="http://www.weather.com.cn/static/html/legend.shtml" target="_blank"> <img src="/static/imghwm/default1.png" data-src="/m2/i/icon_weather/29x20/n00.gif" class="lazy" / alt="正则采集问题,求解,在线等" > </a> </td> <td><a href ="http://baike.weather.com.cn/index.php?doc-view-767.php" target="_blank">晴</a></td> <td> <a href="http://baike.weather.com.cn/index.php?doc-view-1386.php" target="_blank"> <span>低温 <strong>-2℃</strong></span> </a> </td> <td> <a href="http://baike.weather.com.cn/index.php?doc-view-778.php" target="_blank"> 东北风 </a> </td> <td> <a href="http://baike.weather.com.cn/index.php?doc-view-778.php" target="_blank"> 微风 </a> </td> </tr> </table> <!--day 2-->
只想要(取得3天数据):16日星期三 白天:晴 12℃ 东北风微风 夜间:晴 -2℃ 东北风微风
另外发现一个小问题(见下图),不知道应该怎样处理一下?
另外发现一个小问题(见下图),不知道应该怎样处理一下?
echo preg_replace('/ \s+/s','',$result[1]);
3
preg_match_all('/<table class="yuBaoTable" width="100%" border="0" cellspacing="0" cellpadding="0">(.+)<\/table>/isU',$s,$m); echo join('<br>',array_map('strip_tags',array_slice($m[1],0,3)));
哦,写错了。第一个应该是 echo preg_replace('/ \s+/s','',$result2[1]);
问题3
这两行执行后,还有个小缺陷,有很多不必要的换行存在,能弄掉吗?(查看源代码如下)
今天是2013年10月17日 星期四 农历九月十三 沈阳天气预报 (2013-10-1708:00发布) 17日星期四 白天 晴 高温 16℃ 西南风 微风 夜间 晴 低温 3℃ 西南风 微风 <br> 18日星期五 白天 晴 高温 18℃ 西南风 3-4级 夜间 多云 低温 6℃ 西南风 3-4级 <br> 19日星期六 白天 阵雨 高温 15℃ 西南风 3-4级 夜间 多云 低温 4℃ 西南风 微风
echo preg_replace('/\s+/s','',join('
',array_map('strip_tags',array_slice($m[1],0,3))));
echo preg_replace('/\s+/s','',join('
',array_map('strip_tags',array_slice($m[1],0,3))));
换行是去掉了,但全边一起了
沈阳天气预报 (2013-10-1711:00发布)17日星期四白天晴高温16℃西南风微风夜间晴低温3℃西南风微风<br>18日星期五白天晴高温18℃西南风3-4级夜间多云低温6℃西南风3-4级<br>19日星期六白天阵雨高温15℃西南风3-4级夜间多云低温4℃西南风微风
有办法让换行变成一个空格吗(现有的
保留)?
要是不好实现就算了,这样也可以了。说什么好呢?太感谢了
echo preg_replace('/\s+/s',' ',join('
',array_map('strip_tags',array_slice($m[1],0,3))));

如何用Python编写求解最小公倍数的算法?最小公倍数是指两个数中能够整除这两个数的最小整数。在数学中,求解最小公倍数是一项基本的数学任务,而在计算机编程中,我们可以使用Python来编写一个求解最小公倍数的算法。下面将介绍基本的最小公倍数算法,并给出具体的代码示例。最小公倍数的数学定义是:如果a能被n整除且b能被n整除,则n是a和b的最小公倍数。要求解最小

如何使用Python实现求解阶乘的算法?阶乘是数学中的重要概念,指的是一个数乘上其自身减一,再乘上自身减一减一,以此类推,直到乘到1为止。阶乘通常用符号"!"来表示,例如5的阶乘表示为5!,计算公式为:5!=5×4×3×2×1=120。在Python中,我们可以使用循环来实现一个简单的阶乘算法。下面给出一个示例代码:deffacto

Numpy是Python中著名的科学计算库,为处理大型多维数组和矩阵提供了丰富的功能和高效的计算方法。在数据科学和机器学习领域,矩阵的逆运算是一项常见的任务。在本文中,我将介绍使用Numpy库快速求解矩阵逆的方法,并提供具体的代码示例。首先,让我们通过安装Numpy库引入它到我们的Python环境中。可以使用以下命令在终端中安装Numpy:pipinsta

标题:用C语言编程实现最大公约数求解最大公约数(GreatestCommonDivisor,简称GCD)是指能够同时整除两个或多个整数的最大正整数。求解最大公约数对于一些算法和问题解决非常有帮助。在本文中,将通过C语言编程来实现求解最大公约数的功能,并提供具体的代码示例。在C语言中,可以使用欧几里得算法(EuclideanAlgorithm)来求解最大

学习C语言如何求解最大公约数,需要具体代码示例最大公约数(GreatestCommonDivisor,简称GCD)是指两个或多个整数中能够整除它们的最大正整数。在计算机编程中经常会用到最大公约数,特别是在处理分数、化简分数以及求解最简整数比例等问题时。本篇文章将介绍如何使用C语言来求解最大公约数,并给出具体的代码示例。求解最大公约数的方法有很多种,例如欧

在这里,我们将看到一个与模方程相关的有趣问题。假设我们有两个值A和B。我们必须找到变量X可以取的可能值的数量,使得(AmodX)=B成立。假设A为26,B为2。所以X的首选值将是{3,4,6,8,12,24},因此计数为6。这就是答案。让我们看一下算法以更好地理解。算法possibleWayCount(a,b)−begin ifa=b,thenthereareinfinitesolutions ifa

斐波那契数列是一个数列,其中下一项是前两项之和。斐波那契数列的前两项是0后跟1。在这个问题中,我们会发现斐波那契数列中的第n个数字。为此,我们将计算所有数字并打印n项。Input:8Output:011235813说明0+1=11+1=21+2=32+3=5使用For循环将前两项求和作为下一项示例#include<iostream>usingnamespacestd;intmain(){ intt1=0,t2=1,n,i,nextTerm;&am

标题:PHP中如何求解2的乘方?具体代码示例分享在PHP编程中,求解数的乘方是一个常见的需求,特别是在一些算法和数学计算中。本文将详细探讨如何在PHP中求解2的乘方,并提供具体的代码示例供大家参考。在PHP中,可以使用幂运算符**来计算乘方。对于2的乘方,即计算$2^n$,其中$n$是乘方的指数。下面我们将通过几种不同的方法来实现这个计算。方法一:使用**运


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Dreamweaver CS6
视觉化网页开发工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),