js中json对象在php中的使用

本文介绍了一个用于抓取hao123网站上多个城市团购信息的函数。该函数通过定义一系列URL来获取不同城市的团购数据,并解析这些数据以提取包括网站名称、商品标题等在内的关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
 * function 抓取hao123的团购信息
 * @access public
 * @return integer
 */
 public function hao123()
 {
  $arrUrl = array(
   array(
    'province' => 'beijing',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_1_0_jtpage.js',
    'replace' => '/u5317/u4eac',
   ),
   array(
    'province' => 'shanghai',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_2_0_jtpage.js',
    'replace' => '/u4e0a/u6d77',
   ),
   array(
    'province' => 'guangzhou',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_3_0_jtpage.js',
    'replace' => '/u5e7f/u5dde',
   ),
   array(
    'province' => 'shenzhen',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_4_0_jtpage.js',
    'replace' => '/u6df1/u5733',
   ),
   array(
    'province' => 'wuhan',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_5_0_jtpage.js',
    'replace' => '/u6b66/u6c49',
   ),
   array(
    'province' => 'hangzhou',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_6_0_jtpage.js',
    'replace' => '/u676d/u5dde',
   ),
   array(
    'province' => 'tianjin',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_7_0_jtpage.js',
    'replace' => '/u5929/u6d25',
   ),
   array(
    'province' => 'nanjing',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_8_0_jtpage.js',
    'replace' => '/u5357/u4eac',
   ),
   array(
    'province' => 'chengdu',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_9_0_jtpage.js',
    'replace' => '/u6210/u90fd',
   ),
   array(
    'province' => 'chongqing',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_10_0_jtpage.js',
    'replace' => '/u91cd/u5e86',
   ),
   array(
    'province' => 'shenyang',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_11_0_jtpage.js',
    'replace' => '/u6c88/u9633',
   ),
   array(
    'province' => 'suzhou',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_12_0_jtpage.js',
    'replace' => '/u82cf/u5dde',
   ),
   array(
    'province' => 'wuxi',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_13_0_jtpage.js',
    'replace' => '/u65e0/u9521',
   ),
   array(
    'province' => 'wuxi',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_13_0_jtpage.js',
    'replace' => '/u65e0/u9521',
   ),
   array(
    'province' => 'xian',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_14_0_jtpage.js',
    'replace' => '/u897f/u5b89',
   ),
   array(
    'province' => 'zhengzhou',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_15_0_jtpage.js',
    'replace' => '/u90d1/u5dde',
   ),
   array(
    'province' => 'dalian',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_16_0_jtpage.js',
    'replace' => '/u5927/u8fde',
   ),
   array(
    'province' => 'qingdao',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_17_0_jtpage.js',
    'replace' => '/u9752/u5c9b',
   ),
   array(
    'province' => 'changsha',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_18_0_jtpage.js',
    'replace' => '/u957f/u6c99',
   ),
   array(
    'province' => 'hefei',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_19_0_jtpage.js',
    'replace' => '/u5408/u80a5',
   ),
   array(
    'province' => 'taiyuan',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_20_0_jtpage.js',
    'replace' => '/u592a/u539f',
   ),
   array(
    'province' => 'fuzhou',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_21_0_jtpage.js',
    'replace' => '/u798f/u5dde',
   ),
   array(
    'province' => 'kunming',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_22_0_jtpage.js',
    'replace' => '/u6606/u660e',
   ),
   array(
    'province' => 'shijiazhuang',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_23_0_jtpage.js',
    'replace' => '/u77f3/u5bb6/u5e84',
   ),
   array(
    'province' => 'jinan',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_24_0_jtpage.js',
    'replace' => '/u6d4e/u5357',
   ),
   array(
    'province' => 'xiamen',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_25_0_jtpage.js',
    'replace' => '/u53a6/u95e8',
   ),
   array(
    'province' => 'langfang',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_26_0_jtpage.js',
    'replace' => '/u5eca/u574a',
   ),
   array(
    'province' => 'nanchang',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_27_0_jtpage.js',
    'replace' => '/u5357/u660c',
   ),
   array(
    'province' => 'ningbo',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_29_0_jtpage.js',
    'replace' => '/u5b81/u6ce2',
   ),
   array(
    'province' => 'changzhou',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_30_0_jtpage.js',
    'replace' => '/u5b81/u6ce2',
   ),
   array(
    'province' => 'haerbin',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_31_0_jtpage.js',
    'replace' => '/u54c8/u5c14/u6ee8',
   ),
   array(
    'province' => 'shaoxing',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_33_0_jtpage.js',
    'replace' => '/u7ecd/u5174',
   ),
   array(
    'province' => 'changchun',
    'url' => 'http://app.hao123.com/tuangou/data/tgdata_34_0_jtpage.js',
    'replace' => '/u957f/u6625',
   ),
  );
  $file_process = "hao123.txt";
  clearstatcache();
  $process = file_exists($file_process) ? file_get_contents($file_process) : 0 ;
  $processAdd = count($arrUrl) <= $process ? 0 : $process +1 ;
  file_put_contents($file_process,$processAdd);
  for($i = 1; $i <= 3 ; $i++)
  {
   $url = str_replace('jtpage',$i,$arrUrl[$process]['url']);
   $content = file_get_contents($url);
   if(stripos($content,'var strTgData=') === false)
   {
    break;
   }
   $content = str_replace('var strTgData=','',$content);
   $content = str_replace('};','}',$content);
   $content = str_replace('{"'.$arrUrl[$process]['replace'],'{"items',$content);
   $content = json_decode($content);
   foreach($content->items as $item)
   {
    $data['loc'] = $item->item_url;
    $data['website'] = iconv('UTF-8','GBK',$item->website);
    $data['siteurl'] = $item->siteurl;
    $data['city'] = iconv('UTF-8','GBK',$item->city);
    $data['city_id'] = $this->getCityId($data['city']);
    $data['category'] = $item->category;
    $data['major'] = $item->major;
    $data['title'] = iconv('UTF-8','GBK',$item->title);
    $data['image'] = $item->image;
    $data['startTime'] = $item->startTime;
    $data['endTime'] = $item->endTime;
    $data['value'] = $item->value;
    $data['price'] = $item->price;
    $data['rebate'] = $item->rebate;
    $data['endTime'] = $item->endTime;
    $data['bought'] = $item->bought;
    $data['range'] = iconv('UTF-8','GBK',$item->shopProp[0]->range);
    $data['address'] = iconv('UTF-8','GBK',$item->shopProp[0]->address);
    $data['isapi'] = 1;
    $this->dealInfo($data);
   }
  }
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值