php 城市数据,PHP从给定网站抓取省市级城市数据

本节内容:

从给定网站抓取省市级城市数据

完整代码: 代码示例:

/**

* 名称: 抓取省市级城市

*

* 功能: 从所给指定的网址中抓取数据并分析出自己想要的数据。

* 编辑:www.#

*/

/*

SQL:

CREATE TABLE province_city (

id int(11) unsigned NOT NULL auto_increment,

city varchar(200) character set latin1 collate latin1_bin NOT NULL default '',

parent_id smallint(4) unsigned NOT NULL default '0',

city_code varchar(10) character set latin1 collate latin1_bin NOT NULL default '',

PRIMARY KEY  (id),

KEY parent_id (parent_id),

KEY city_code (city_code)

) ENGINE=MyISAM

*/

/*

@取得程序执行的时间微秒

*/

function getMicrotime()

{

list($usec, $sec) = explode(" ",microtime());

return ((double)$usec + (double)$sec);

}

/*

@过滤字符串取得需要的值

*/

function filterData($data){

global $pre;

$start_len = strpos($data,"=")+1;

$end_len   = strpos($data,">");

$len       = $end_len-$start_len;

$url       = substr($data,$start_len,$len);

//$tmp       = implode(file($pre.$url));

$tmp       = getDataFromUrl($pre.$url);

return $tmp;

}

/*

@取得指定网站上的数据

*/

function getDataFromUrl($url){

$data  = implode("",file($url));

$data  = strip_tags($data,"");

preg_match_all ("/(]*>)(.*)(///2>)/", $data, $matches);

return $matches;

}

set_time_limit(0);

$startTime  = getMicrotime();

$conn  = mysql_connect("localhost","root","");

mysql_select_db("365tag",$conn);

$sql   = "INSERT INTO province_city (id,city, parent_id) VALUES ";

$pre   = "http://bjrd.beijing.gov.cn/life/life_com/code/";

$url   = "http://bjrd.beijing.gov.cn/life/life_com/code/city.asp";

$matches = getDataFromUrl($url);

global $id_num;

$id_num = 0;

for ($i=0; $i

$id   = !empty($id_num)?($id_num+$i+1):($i+1);

echo "id_num: ".$id_num."
";

echo "id:".$id."
";

$j    = $i+1;

echo "

".$j.".".$matches[3][$i]."

";

$sql  .= "('".$id."','".$matches[3][$i]."',0),";

$city = filterData($matches[1][$i]);

for($k=0;$k

unset($id_tmp);

$id_tmp= $id+$k+1;

//echo "id_tmp:".$id_tmp."
";

$z     = $k+1;

$sql  .= "('".$id_tmp."','".$city[3][$k]."','".$id."'),";

echo $z.".".$city[3][$k];

echo "
";

}

echo "


";

$id_num  = $id_num+count($city[0]);

}

echo "SQL:
".$sql;

echo "


";

$endTime  = getMicrotime();

$execTime = $endTime-$startTime;

echo "抓取及分析数据所用时间:".$execTime."";

//开始执行添加数据库的程序

$len_tmp  = strrpos($sql,',');

$sql      = substr($sql,0,$len_tmp).";";

mysql_query($sql) or die(mysql_error());

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值