php tongjiapi 使用_PHP外部调用网站百度统计数据的方法详解

本文详细介绍了如何使用PHP通过curl模拟登陆百度统计平台,抓取并解析网站的统计数据,包括设置目标网站允许密码查看、编写PHP代码进行POST请求以及解析JSON数据。
摘要由CSDN通过智能技术生成

目的:外部调用网站的百度统计(tongji.baidu.com)数据。

条件:1、具备调用目标网站的百度统计平台管理权限

2、PHP环境支持curl函数。

原理:同PHP小偷程序原理,通过curl函数模拟登陆百度统计平台,并抓取相关数据。

实现过程详解:

一、设置目标网站百度统计

登录百度统计管理后台需要输入验证码,为了避免远程抓取过程中处理验证码,可先进入百度统计管理后台将目标站点设置允许通过密码查看统计数据,在调用数据时可模拟登陆百度统计开放浏览入口,而不用登录管理后台,从而跳过验证码问题。

设置过程:登陆tongji.baidu.com -> 点击顶部“设置”选项 -> 点击左侧“系统管理”中的“统计图标设置” -> 页面右上角选择目标网站 -> 勾选“开放数据给第三方查看”和“开放所有报告” -> 设置查看密码,点击确定。

此时在“小贴士”下方文本框中可得到目标网站的统计数据查看地址,如本站abcd9.com的查看地址为:http://tongji.baidu.com/web/welcome/ico?s=f265eac6e83d5c33da59b31b26da94fd

二、php代码调用

远程抓取类代码:

class getinfo{

public $cookie_abcd9_com,$content;

public function post($post_url,$param) {

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,$post_url); //设定远程抓取网址

curl_setopt($ch, CURLOPT_POST, 1); //设置为POST提交模式

curl_setopt($ch, CURLOPT_POSTFIELDS, $param); //提交参数

curl_setopt($ch, CURLOPT_COOKIEJAR, $this->cookie_abcd9_com);

//把返回的cookie保存到$this->cookie_abcd9_com文件中

curl_setopt($ch, CURLOPT_COOKIEFILE, $this->cookie_abcd9_com);

//读取cookie

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

//返回获取的输出文本流,而不自动显示

$this->content = curl_exec($ch);

curl_close($ch);

}

}

调用代码:

$info=new getinfo();//创建实例$info

$info->cookie_abcd9_com=tempnam("","cookie"); //设置cookie临时文件

$info->post('http://tongji.baidu.com/web/welcome/ico?s=f265eac6e83d5c33da59b31b26da94fd','passwd=abcd9.com');

//模拟登陆。其中淡蓝色字符串为目标网站的查看地址,红色字符串为查看密码

$info->post('http://tongji.baidu.com/web/3827653/ajax/post','indicators=ip_count&method=visit/district/f&siteId=1351465');

//获取数据。其中淡蓝色字符串为ajax处理url,三个红色字符串为传递参数

$data=json_decode($info->content,true); //获取到的数据为json格式,转换为数组

print_r($data); //输出,或进行其他操作

百度统计后台中是通过ajax调用数据的,所以无法直接抓取html代码,而需要post给ajax处理url并获取返回值。通过web抓包程序(如IE httpwatch professional)

对百度统计平台登录后的抓包可得到提交所需的参数,上面代码中以本站abcd9.com百度统计平台中访客分析-地域分布为例抓取到ajax处理url和

相关参数,参数中ip_count为获取地域分布中的ip统计数据,如改成pv_count将会获取到地域分布中的pv统计数据。对百度统计平台各类统计

项目抓包可得到更多相关参数,这里不一一列举。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值