搜索
首页后端开发php教程正则采集问题,求解,在线等

目标页: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)))); 

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何用Python编写求解最小公倍数的算法?如何用Python编写求解最小公倍数的算法?Sep 19, 2023 am 11:25 AM

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

如何使用Python实现求解阶乘的算法?如何使用Python实现求解阶乘的算法?Sep 19, 2023 am 10:30 AM

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

快速计算矩阵逆的方法 - Numpy实现快速计算矩阵逆的方法 - Numpy实现Jan 24, 2024 am 08:47 AM

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

用C语言编程实现最大公约数求解用C语言编程实现最大公约数求解Feb 21, 2024 pm 07:30 PM

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

学习C语言如何求解最大公约数学习C语言如何求解最大公约数Feb 21, 2024 pm 11:18 PM

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

在C/C++中编写求解模方程的程序?在C/C++中编写求解模方程的程序?Sep 12, 2023 pm 02:21 PM

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

求第n个斐波那契数的C/C++程序?求第n个斐波那契数的C/C++程序?Sep 12, 2023 pm 06:01 PM

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

PHP中如何求解2的乘方?PHP中如何求解2的乘方?Mar 28, 2024 am 11:09 AM

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

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SecLists

SecLists

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

安全考试浏览器

安全考试浏览器

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

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

mPDF

mPDF

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