php 获得京东的数据,利用php封装函数抓取京东商城省市县数据

/**

* Created by PhpStorm.

* User: Administrator

* Date: 14-9-1

* Time: 下午2:00

*/

error_reporting(E_ALL);

require './source/class/class_core.php';

$discuz = & discuz_core::instance();

//$cachelist = array('plugin');

$discuz->cachelist = $cachelist;

$discuz->init();

/**

* 远程打开URL

* @param string $url   打开的url, 如

* @param int $limit   取返回的数据的长度

* @param string $post   要发送的 POST 数据,如uid=1&password=1234

* @param string $cookie 要模拟的 COOKIE 数据,如uid=123&auth=a2323sd2323

* @param bool $bysocket TRUE/FALSE 是否通过SOCKET打开

* @param string $ip   IP地址

* @param int $timeout   连接超时时间

* @param bool $block   是否为阻塞模式

* @return    取到的字符串

*/

function uc_fopen($url, $limit = 0, $post = '', $cookie = '', $bysocket = FALSE, $ip = '', $timeout = 50, $block = false) {

$return = '';

$matches = parse_url($url);

!isset($matches['host']) && $matches['host'] = '';

!isset($matches['path']) && $matches['path'] = '';

!isset($matches['query']) && $matches['query'] = '';

!isset($matches['port']) && $matches['port'] = '';

$host = $matches['host'];

$path = $matches['path'] ? $matches['path'].($matches['query'] ? '?'.$matches['query'] : '') : '/';

$port = !empty($matches['port']) ? $matches['port'] : 80;

if($post) {

$out = "POST $path HTTP/1.0\r\n";

$out .= "Accept: **\r\n";

//$out .= "Referer: $boardurl\r\n";

$out .= "Accept-Language: zh-cn\r\n";

$out .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n";

$out .= "Host: $host\r\n";

$out .= "Connection: Close\r\n";

$out .= "Cookie: $cookie\r\n\r\n";

}else {

$out = "GET $path HTTP/1.0\r\n";

$out .= "Accept: */*\r\n";

//$out .= "Referer: $boardurl\r\n";

$out .= "Accept-Language: zh-cn\r\n";

$out .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n";

$out .= "Host: $host\r\n";

$out .= "Connection: Close\r\n";

$out .= "Cookie: $cookie\r\n\r\n";

}

$fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout);

if(!$fp) {

return '';//note $errstr : $errno \r\n

} else {

stream_set_blocking($fp, $block);

stream_set_timeout($fp, $timeout);

@fwrite($fp, $out);

$status = stream_get_meta_data($fp);

if(!$status['timed_out']) {

while (!feof($fp)) {

if(($header = @fgets($fp)) && ($header == "\r\n" || $header == "\n")) {

break;

}

}

$stop = false;

while(!feof($fp) && !$stop) {

$data = fread($fp, ($limit == 0 || $limit > 8192 ? 8192 : $limit));

$return .= $data;

if($limit) {

$limit -= strlen($data);

$stop = $limit <= 0;

}

}

}

@fclose($fp);

$lenth=strlen($return);

$return=substr($return,1,$lenth-2);

return json_decode($return,true);

}

}

$return=uc_fopen('http://d.360buy.com/area/get?fid=0');

/*function  getdata($id=0){

$string='';

$arr=uc_fopen('http://d.360buy.com/area/get?fid='.$id);

$length=$id?$lenth=count($arr):34;

for($i=0;$i

$string.=$arr[$i]['name'];

sleep(5);

getdata($arr[$i]['id']);

}

return $string;

}*/

@$fp = fopen("sql.txt","w");

if(!$fp){

echo "system error";

exit();

}

for($i=0;$i<34;$i++){

//echo "insert into ultrax_common_district_Tmp (code,name,upcode,level) value (".$return[$i]['id'].",'".$return[$i]['name']."',0,0);
";

$city=uc_fopen('http://d.360buy.com/area/get?fid='.$return[$i]['id']);

sleep(1);

for($j=0;$j

//$fileData="insert into ultrax_common_district_Tmp (code,name,upcode,level) value (".$city[$j]['id'].",'".$city[$j]['name']."',".$return[$i]['id'].",1);\n";

//fwrite($fp,$fileData);

//echo "insert into ultrax_common_district_Tmp (code,name,upcode,level) value ('".$city[$j]['id']."',".$city[$j]['name']."',".$return[$i]['id'].",1);
";

$area=uc_fopen('http://d.360buy.com/area/get?fid='.$city[$j]['id']);

$length=count($area);

for($k=0;$k

$fileData="insert into ultrax_common_district_Tmp (code,name,upcode,level) value (".$area[$k]['id'].",'".$area[$k]['name']."',".$city[$j]['id'].",2);\n";

fwrite($fp,$fileData);

//echo "insert into ultrax_common_district_Tmp (code,name,upcode,level) value (".$area[$k]['id'].",'".$area[$k]['name']."',".$city[$j]['id'].",2);\n";

}

sleep(1);

}

}

fclose($fp);

exit;

/*jquery jsonp  无法进行抓取,会出现阻塞的情况*/

echo  $script=<<

var data=$return;

var city=null;

function getdata(id){

$.ajax({

url: "http://d.360buy.com/area/get?fid="+id,

// the name of the callback parameter, as specified by the YQL service

jsonp: "callback",

// tell jQuery we're expecting JSONP

dataType: "jsonp",

// tell YQL what we want and that we want JSON

data: {

format: "json"

},

// work with the response

success: function(response) {

for(var j=0;j

console.log("insert into city (name,upid) values ('"+response[j]["name"]+"',"+id+");
");

}

}

});

}

for(var i= 0;i<34;i++){

var province=data[i];

//setTimeout(getdata(data[i]['id']),1000000000000*i);

for(var j=0;j

alert(province);

setTimeout(getdata(province[j]['id']),1000000000000*j);

}

//document.write("insert into province (name,upid) values ("+data[i]["name"]+"',0);
");

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
province:北京 --cityName:朝阳区 ----countyName:三环以内 ----countyName:三环到四环之间 ----countyName:四环到五环之间 ----countyName:五环到六环之间 ----countyName:管庄 ----countyName:北苑 ----countyName:定福庄 --cityName:海淀区 ----countyName:三环以内 ----countyName:三环到四环之间 ----countyName:四环到五环之间 ----countyName:五环到六环之间 ----countyName:六环以外 ----countyName:上地 ----countyName:西三旗 ----countyName:清河 ----countyName:圆明园西路 ----countyName:农业大学西校区 ----countyName:西二旗 --cityName:西城区 ----countyName:内环到二环里 ----countyName:二环到三环 --cityName:东城区 ----countyName:内环到三环里 --cityName:崇文区 ----countyName:一环到二环 ----countyName:二环到三环 --cityName:宣武区 ----countyName:内环到三环里 --cityName:丰台区 ----countyName:四环到五环之间 ----countyName:二环到三环 ----countyName:三环到四环之间 ----countyName:五环到六环之间 ----countyName:六环之外 --cityName:石景山区 ----countyName:四环到五环内 ----countyName:石景山城区 ----countyName:八大处科技园区 --cityName:门头沟 ----countyName:郊区 ----countyName:城区以内 --cityName:房山区 ----countyName:郊区 ----countyName:城区以内 --cityName:通州区 ----countyName:五环到六环之间 ----countyName:六环以外(其他地区) ----countyName:六环以外(张家湾镇、台湖镇、漷镇、宋庄镇) ----countyName:六环以外(于家务乡) --cityName:大兴区 ----countyName:四环至五环之间 ----countyName:六环以外 ----countyName:五环至六环之间 ----countyName:北京经济技术开发区 --cityName:顺义区 ----countyName:顺义区(城区内,天竺镇,马坡镇,牛栏山镇,后沙峪镇城区) ----countyName:顺义区(郊区) ----countyName:顺义区(南彩镇、李桥镇) --cityName:怀柔区 ----countyName:郊区 ----countyName:城区以内 --cityName:密云区 ----countyName:城区以外 ----countyName:城区 --cityName:昌平区 ----countyName:城区以外 ----countyName:六环以内 ----countyName:城区 --cityName:平谷区 ----countyName:城区以外 ----countyName:城区 --cityName:延庆 ----countyName:百泉路南,京新高速北,康张路西,京银路东 ----countyName:百泉路北,京新高速南,康张路东,京银路西 province:上海 --cityName:黄浦区 里面包含了jsonutils工具类 地区json NetTool类

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值