简单php采集网页部分文字问题,求指点,多谢
程序员文章站
2022-06-15 11:22:07
...
本帖最后由 hi_5461 于 2013-06-09 15:54:50 编辑 目标采集页面如下代码(示例页面,数据可能变化,但格式不会变化)
要求得到table中主要的4项数据:序 号、违法时间、违法地点、违法行为(即93行~130行之间的)
希望能给出详细一点的php代码。
不用正则能实现吗?
不用正则能实现吗?
正则在这种情况下使用是再好不过了
我是这样调用的:
$m 的 1 到 4 下标依次表示为 序号、时间、地点、内容
$m 的 1 到 4 下标依次表示为 序号、时间、地点、内容
试了一下,结果还是与原来的一样,空格字符没能过滤掉
要求得到table中主要的4项数据:序 号、违法时间、违法地点、违法行为(即93行~130行之间的)
希望能给出详细一点的php代码。
交警查询 返回首页 / 设为首页 / 添加搜藏
在线查询 / 电子警察拍照信息
电子警察拍照信息 小型汽车 辽AQ007B 序 号 违法时间 违法地点 违法行为 1 2013-02-0711:16 沈阳市永安路 违停,驾驶人不在现场,妨碍其他车辆行人通行的 2 2013-03-0808:34 沈阳市三好街文萃路由南向北 通过路口遇停止信号时,停在停止线以内或路口内的 3 2013-03-2210:16 沈阳市三好街文萃路4号 违停,驾驶人不在现场,妨碍其他车辆行人通行的 4 2013-05-1413:53 沈阳市永安路 违停,驾驶人不在现场,妨碍其他车辆行人通行的 5 2013-05-3113:29 沈阳市五里河街 违停,驾驶人不在现场,妨碍其他车辆行人通行的
友情连接:
Copyright 2009 www.sygajj.gov.cn All Rights Reserved
版权所有:沈阳市交通警察支队 E-maill:webmaster@www.sygajj.gov.cn 辽ICP备07501079号 邮编:110003
站长统计
回复讨论(解决方案)
preg_match_all('#(\d+) \s*(.+) \s*(.+) \s*(.+) #isU',$s,$m);print_r($m);
preg_match_all('#(\d+) \s*(.+) \s*(.+) \s*(.+) #isU',$s,$m);print_r($m);
不用正则能实现吗?
你这个需求用正则是最方便的,还想怎么样。
preg_match_all('#(\d+) \s*(.+) \s*(.+) \s*(.+) #isU',$s,$m);print_r($m);
不用正则能实现吗?
正则在这种情况下使用是再好不过了
不知道我调用的对不对,但是输出结果中出现了我不想要的字符。
?Array( [0] => Array ( [0] =>1 2013-02-0711:16 沈阳市永安路 违停,驾驶人不在现场,妨碍其他车辆行人通行的 [1] =>2 2013-03-0808:34 沈阳市三好街文萃路由南向北 通过路口遇停止信号时,停在停止线以内或路口内的 [2] =>3 2013-03-2210:16 沈阳市三好街文萃路4号 违停,驾驶人不在现场,妨碍其他车辆行人通行的 [3] =>4 2013-05-1413:53 沈阳市永安路 违停,驾驶人不在现场,妨碍其他车辆行人通行的 [4] =>5 2013-05-3113:29 沈阳市五里河街 违停,驾驶人不在现场,妨碍其他车辆行人通行的 ) [1] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 ) [2] => Array ( [0] => 2013-02-0711:16 [1] => 2013-03-0808:34 [2] => 2013-03-2210:16 [3] => 2013-05-1413:53 [4] => 2013-05-3113:29 ) [3] => Array ( [0] => 沈阳市永安路 [1] => 沈阳市三好街文萃路由南向北 [2] => 沈阳市三好街文萃路4号 [3] => 沈阳市永安路 [4] => 沈阳市五里河街 ) [4] => Array ( [0] => 违停,驾驶人不在现场,妨碍其他车辆行人通行的 [1] => 通过路口遇停止信号时,停在停止线以内或路口内的 [2] => 违停,驾驶人不在现场,妨碍其他车辆行人通行的 [3] => 违停,驾驶人不在现场,妨碍其他车辆行人通行的 [4] => 违停,驾驶人不在现场,妨碍其他车辆行人通行的 ))
我是这样调用的:
$s = $p->post($remote_server,$post_string);preg_match_all('#(\d+) \s*(.+) \s*(.+) \s*(.+) #isU',$s,$m);print_r($m);
上面的结果中,从第3行至第25行,是我不想要的,而且第47行中出现了空格,这也不是我想要的,求解决代码,多谢!
$s = $p->post($remote_server,$post_string);preg_match_all('#(\d+) \s*(.+) \s*(?: )*(.+) \s*(?: )*(.+) #isU',$s,$m);print_r($m);
$m 的 1 到 4 下标依次表示为 序号、时间、地点、内容
$s = $p->post($remote_server,$post_string);preg_match_all('#(\d+) \s*(.+) \s*(?: )*(.+) \s*(?: )*(.+) #isU',$s,$m);print_r($m);
$m 的 1 到 4 下标依次表示为 序号、时间、地点、内容
试了一下,结果还是与原来的一样,空格字符没能过滤掉
preg_match_all('#