请问php怎样抓取其它网站的动态数据,显示在自己的网页内并同步更新。

以http://www.boc.cn/sourcedb/whpj/为例,只抓取数据列表部分,其它部分不要。本人编程小白,请给出完整的代码。本人只有100分了,还请大家多多... http://www.boc.cn/sourcedb/whpj/为例,只抓取数据列表部分,其它部分不要。本人编程小白,请给出完整的代码。本人只有100分了,还请大家多多帮忙。 展开
 我来答
iostream210
2013-02-05 · TA获得超过912个赞
知道小有建树答主
回答量:588
采纳率:0%
帮助的人:384万
展开全部
刚吃完午饭吧,来帮你实现一下吧。记得加分哦。

$url = "http://www.boc.cn/sourcedb/whpj/";
$queryServer = curl_init();
curl_setopt($queryServer, CURLOPT_URL, $url);
curl_setopt($queryServer, CURLOPT_HEADER, 0);
curl_setopt($queryServer, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($queryServer, CURLOPT_RETURNTRANSFER, true);
curl_setopt($queryServer, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($queryServer, CURLOPT_TIMEOUT, 30);
$html = curl_exec($queryServer);
$html = iconv('UTF-8','GBK//IGNORE',$html); //如果你需要是的数据是utf-8编码的,这一行可以注销,如果需要gbk编码的,请保留.如果出现乱码,就是一行的问题,你自己调着试吧
//echo $holder;exit; 此处可以输出来测试.
$html = str_replace(array("\n","\r","\t"),"",$html);
$preg = '/<table\s+width=\"800\"[^>]+>(.*?)<\/table>/';
preg_match_all($preg,$html,$out);
//匹配每行
preg_match_all('/<tr[^>]+>(.*?)<\/tr>/',$out[1][0],$tr);
//匹配每个td
$result = array();
$match = '/<td.+>([^<]+)<\/td>/U';
foreach( $tr[0] as $key => $value ){
preg_match_all($match,$value,$arr);
$result[] = $arr[1];
}
//输出测试,$result就是你要的数据,至于你要怎么输出显示格式,那就随心调就好了。
foreach( $result as $key => $value ){
echo implode("\t",$value);
echo "<br>";
}
exit;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
waphack5
2013-02-05 · 超过30用户采纳过TA的回答
知道答主
回答量:133
采纳率:100%
帮助的人:61.4万
展开全部
如果对方没有采集限制可以使用 file_get_content 如果有限制的话,可以使用 curl 或 fsockopen ,在使用 strstr strpos preg_match_all 等函数就能做到,我可以给你做,但是不免费。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-02-05
展开全部
不行啊,如果BOC提供RSS源还好,这情况基本不行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式