php爬百度全网网站,php爬百度失信接口

namespace Home\Controller;

use Curl\Curl;

use Think\Controller;

class ShixinController extends Controller

{

public function __construct()

{

require "./vendor/autoload.php";

}

/**

* 根据姓名获取数据

* @param string $iname

* @param int $pn

* @return mixed

* @throws \ErrorException

*/

public function getData($iname="测试",$pn=0)

{

$curl = new Curl();

$url = 'https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?';

$userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36';

$referer = "https://www.baidu.com/s?wd=%E5%A4%B1%E4%BF%A1%E4%BA%BA&rsv_spt=1&rsv_iqid=0xd609bc53000007a2&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&rqlang=cn&tn=baiduhome_pg&rsv_enter=1&oq=%25E4%25BA%25BA%25E4%25BA%25BA%25E7%25BD%2591&inputT=4103&rsv_t=284b4GKK9AtCD7tiOTYP1zvlPucgiWINKuuwdhMhPwufPfGhspZJaAnNGqS4bjC9fL2e&rsv_sug3=29&rsv_sug1=27&rsv_sug7=100&rsv_pq=dadd35d50000105a&rsv_sug2=0&rsv_sug4=4817";

$params = array(

'pn'=> strval($pn*10),

'resource_id'=> '6899',

'query'=> '失信被执行人名单',

'iname'=> $iname,

'rn'=> '10',

'ie'=>'utf-8',

'oe'=> 'utf-8',

'format'=> 'json',

'from_mid'=>1,

'_'=>time().rand(100,999)

);

$curl->setUserAgent($userAgent);

$curl->setReferer($referer);

$curl->get($url,$params);

if ($curl->error) {

echo 'Error: ' . $curl->errorCode . ': ' . $curl->errorMessage . "\n";

} else {

// echo 'Response:' . "\n";

// print_r($curl->response->data[0]->disp_data);

$response = $curl->response->data[0]->disp_data; //返回的结果

// $dispNum = $curl->response->data[0]->dispNum; //这个name的总数

$response =json_decode( json_encode( $response),true);

// print_r($response);

return $response;

}

}

public function shixin()

{

$iname = "测试";

$num = $this->getnum($iname);

echo '共' .$num. '条数据

';

$pn = ceil($num/10);

echo '共' .$pn. '页

';

$result = array();

for ($i=0;$i

{

echo '爬取第' .($i +1). '页

';

$result = $this->getData($iname,$i);

try {

$this->addData($result);

}catch (\Exception $e){

echo $e->getMessage();

}

}

}

/**

* 获取总数

* @param $iname

* @param int $pn

* @return bool

* @throws \ErrorException

*/

public function getnum($iname,$pn=0)

{

$url = 'https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?';

$referer = 'https://www.baidu.com/s?wd=%E5%A4%B1%E4%BF%A1%E4%BA%BA&rsv_spt=1&rsv_iqid=0xd609bc53000007a2&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&rqlang=cn&tn=baiduhome_pg&rsv_enter=1&oq=%25E4%25BA%25BA%25E4%25BA%25BA%25E7%25BD%2591&inputT=4103&rsv_t=284b4GKK9AtCD7tiOTYP1zvlPucgiWINKuuwdhMhPwufPfGhspZJaAnNGqS4bjC9fL2e&rsv_sug3=29&rsv_sug1=27&rsv_sug7=100&rsv_pq=dadd35d50000105a&rsv_sug2=0&rsv_sug4=4817';

$userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36';

$params = array(

'pn' => $pn * 10,

'resource_id' => '6899',

'query' => '失信被执行人名单',

'iname' => $iname,

'rn' => '10',

'ie' => 'utf-8',

'oe' => 'utf-8',

'format' => 'json'

);

$curl = new Curl();

$curl->setUserAgent($userAgent);

$curl->setReferer($referer);

$curl->get($url,$params);

$response = $curl->response;

if ($curl->error) {

echo 'Error: ' . $curl->errorCode . ': ' . $curl->errorMessage . "\n";

} else {

if ($curl->response->data[0]){

$dispNum = $curl->response->data[0]->dispNum; //这个name的总数

return $dispNum;

}else{

// echo "没有数据";

return false;

}

}

}

/**

* 数据库添加数据

* @param $response

*/

public function addData($response)

{

foreach ($response as $value) {

$locid = explode("=", $value['loc'])[1];

$record = M('shixin')->where(array('id'=>$locid))->find();

if ($record)

{

echo "数据已经存在";

}

$data = array(

'id' => $locid,

'loc_id' => $locid,

'SiteId' => $value['SiteId'],

'StdStg' => $value['StdStg'],

'StdStl' => $value['StdStl'],

'age' => $value['age'],

'areaName' => $value['areaName'],

'businessEntity' => $value['businessEntity'],

'cambrian_appid' => $value['cambrian_appid'],

'cardNum' => $value['cardNum'],

'caseCode' => $value['caseCode'],

'changefreq' => $value['changefreq'],

'courtName' => $value['courtName'],

'disruptTypeName' => $value['disruptTypeName'],

'duty' => $value['duty'],

'focusNumber' => $value['focusNumber'],

'gistId' => $value['gistId'],

'gistUnit' => $value['gistUnit'],

'iname' => $value['iname'],

'lastmod' => $value['lastmod'],

'loc' => $value['loc'],

'partyTypeName' => $value['partyTypeName'],

'performance' => $value['performance'],

'performedPart' => $value['performedPart'],

'priority' => $value['priority'],

'publishDate' => $value['publishDate'],

'publishDateStamp' => $value['publishDateStamp'],

'regDate' => $value['regDate'],

'sexy' => $value['sexy'],

'sitelink' => $value['sitelink'],

'type' => $value['type'],

'unperformPart' => $value['unperformPart'],

'_select_time' => $value['_select_time'],

'_update_time' => $value['_update_time'],

'_version' => $value['_version']

);

M('shixin')->add($data);

}

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值