欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

正则采集问题,求解,在线等

程序员文章站 2022-05-30 15:22:40
...
目标页: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('/

\s+(.+)\s+/s',$s,$m);echo $m[1];



2
 preg_match('/
\s+

\s+(.+?)\s+/s',$s,$m);echo $m[1];

3 不知道你想要得到什么格式的数据。

一直都感觉正则好高端

1

$s=file_get_contents('http://www.weather.com.cn/weather/101070101.shtml');preg_match('/

\s+(.+)\s+/s',$s,$m);echo $m[1];



2
 preg_match('/
\s+

\s+(.+?)\s+/s',$s,$m);echo $m[1];

3 不知道你想要得到什么格式的数据。

就是按日期,顺序取到各项值就行,文本就行,比如:星期四 白天晴 高温16摄氏度 西南风微风 夜间晴 低温3摄氏度 西南风微风(换行)...如此把这块数据都取出来

如下源码:

          
16日星期三 白天 正则采集问题,求解,在线等 高温 12℃ 东北风 微风
夜间 正则采集问题,求解,在线等 低温 -2℃ 东北风 微风

只想要(取得3天数据):16日星期三 白天:晴 12℃ 东北风微风 夜间:晴 -2℃ 东北风微风

另外发现一个小问题(见下图),不知道应该怎样处理一下?

另外发现一个小问题(见下图),不知道应该怎样处理一下?

echo preg_replace('/ \s+/s','',$result[1]);

3

preg_match_all('/
(.+)/isU',$s,$m); echo join('
',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℃                                                                    西南风                                                                    微风                                              
18日星期五 白天 晴 高温 18℃ 西南风 3-4级 夜间 多云 低温 6℃ 西南风 3-4级
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℃西南风微风
18日星期五白天晴高温18℃西南风3-4级夜间多云低温6℃西南风3-4级
19日星期六白天阵雨高温15℃西南风3-4级夜间多云低温4℃西南风微风

有办法让换行变成一个空格吗(现有的
保留)?

要是不好实现就算了,这样也可以了。说什么好呢?太感谢了

echo preg_replace('/\s+/s',' ',join('
',array_map('strip_tags',array_slice($m[1],0,3))));

正则采集问题,求解,在线等

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • 正则采集问题,求解,在线等
  • 专题推荐

    作者信息
    正则采集问题,求解,在线等

    认证0级讲师

    推荐视频教程
  • 正则采集问题,求解,在线等javascript初级视频教程
  • 正则采集问题,求解,在线等jquery 基础视频教程
  • 视频教程分类