编程语言从来都是工具,编程逻辑思维才是最重要的,在限定的规则内,实现自己的想法,正如人生一样!

不管是python还是php只要掌握了基础语法规则,明确了实现过程,都能达到想要实现的结果,不同的是有人接受能力强,变通厉害,反之,如本渣渣愚笨,不懂变动之人,一直在打转转。

希望更多学习编程语言的人早日走出新手村!

以下php实现百度下拉词的获取的简单案例,参考本渣渣以前写的Python获取百度下拉词,SEO工具脚本,Python百度下拉框关键词采集工具,结合度娘搜索参考,以php语言来实现同样的效果,还是那句话,编程是工具,最重要的还是编程的个人,与使用何种语言无关。

其实最早以前有写过一篇php的seo应用,PHP与SEO,应用curl及正则获取搜狗搜索相关关键词,本篇也是在该篇的基础上,应用同样的curl库来实现。

PHP与SEO,应用curl库获取百度下拉关键词案例!_php

最初写的那篇php应用参考资料比较详细,如有意可移步查阅。

php相比python,本渣渣实践的太少,老是不习惯,没有写顺手,还是写的太少了!

PHP与SEO,应用curl库获取百度下拉关键词案例!_百度_02

以下简单分享几个关键点:

1.字符串编码转换 json_decode 函数

$keywords=json_decode($response, true); // 对JSON字符串「解码」,并转换为PHP变量。
  • 1.

2.字符串切片分段 explode函数

$slice = explode(".sug(", $encodedString);
  • 1.

3.功能强大的 php 扩展库 curl

$bd=curl_init();
curl_setopt($bd, CURLOPT_SSL_VERIFYPEER, false); // 信任任何证书
curl_setopt($bd,CURLOPT_URL, $url);
curl_setopt($bd, CURLOPT_RETURNTRANSFER, 1); //不直接输出页面内容
$response=curl_exec($bd);
curl_close($bd);
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

4.php 数组的打印输出

foreach($keywords as $keword){
   echo $keword['q'].'<br>';
}
  • 1.
  • 2.
  • 3.

5.php 类方法的生成调用

$bd= new Bd();
// 版本一
$bd->bdxl();
echo '<hr>';
// 版本二
$bd->bdxl2();
echo '<hr>';
// 版本三
$bd->bdxl3();
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

6.字符串乱码 转换gbk编码 mb_convert_encoding 函数

$encodedString = mb_convert_encoding($originalString, 'UTF-8', 'GBK'); //转换成gbk编码
  • 1.

附源码参考:

<!-- https://www.php.net/curl-setopt -->
<!-- 公众号:Python与SEO学习 -->


<?php
class Bd
{
    public function bdxl()
{
        $key="php";
        $xlurl="https://www.baidu.com/sugrec?pre=1&ie=utf-8&json=1&prod=pc&wd=";
        $url=$xlurl.$key;
        $bd=curl_init();
        //curl_setopt($bd, CURLOPT_RETURNTRANSFER, true);
        $user_agent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36";
        curl_setopt($bd, CURLOPT_USERAGENT,$user_agent);
        curl_setopt($bd, CURLOPT_SSL_VERIFYPEER, false); // 信任任何证书
        curl_setopt($bd,CURLOPT_URL, $url);
        curl_setopt($bd, CURLOPT_RETURNTRANSFER, 1); //不直接输出页面内容
        $response=curl_exec($bd);
        curl_close($bd);


        // echo $response;
        // var_dump($response);
        $keywords=json_decode($response, true); // 对JSON字符串「解码」,并转换为PHP变量。
        // var_dump($keywords);
        $keywords=$keywords["g"];
        // var_dump($keywords);
        foreach($keywords as $keword){
            echo $keword['q'].'<br>';
        }
    }


    public function bdxl2(){
        $key="php";
        $xlurl="https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=";
        $url=$xlurl.$key;
        $bd=curl_init();
        curl_setopt($bd, CURLOPT_SSL_VERIFYPEER, false); // 信任任何证书
        curl_setopt($bd,CURLOPT_URL, $url);
        curl_setopt($bd, CURLOPT_RETURNTRANSFER, 1); //不直接输出页面内容
        $response=curl_exec($bd);
        curl_close($bd);
        // echo $response;
        // var_dump($response);
        // print_r($response);
        $originalString = $response;
        $encodedString = mb_convert_encoding($originalString, 'UTF-8', 'GBK'); //转换成gbk编码
        // var_dump($encodedString);
        // 切片,以'false,s:['作为分隔符
        $slice = explode("false,s:[", $encodedString);
        // var_dump($slice[1]);
        // 切片,以']'作为分隔符
        $slice = explode("]", $slice[1]);
        // var_dump($slice[0]); 
        // 切片,以','作为分隔符
        $slice = explode(",", $slice[0]);
        // var_dump($slice); 
        // print_r($slice[0]);
        foreach($slice as $keyword){
            echo $keyword.'<br>';
        }
        echo '<hr>';
        $slice = explode(".sug(", $encodedString);
        // var_dump($slice[1]);
        $slice = explode(")", $slice[1]);
        var_dump($slice[0]);
    }




    public function bdxl3(){
        $key="php";
        $url='http://suggestion.baidu.com/su?wd='.$key.'&sugmode=3&json=1';
        $bd=curl_init();
        curl_setopt($bd, CURLOPT_SSL_VERIFYPEER, false); // 信任任何证书
        curl_setopt($bd,CURLOPT_URL, $url);
        curl_setopt($bd, CURLOPT_RETURNTRANSFER, 1); //不直接输出页面内容
        $response=curl_exec($bd);
        curl_close($bd);
        // var_dump($response);
        $originalString = $response;
        $encodedString = mb_convert_encoding($originalString, 'UTF-8', 'GBK'); //转换成gbk编码
        // var_dump($encodedString);
        $slice = explode(".sug(", $encodedString);
        $slice = explode(")", $slice[1]);
        // var_dump($slice[0]);
        $keywords=json_decode($slice[0], true); // 对JSON字符串「解码」,并转换为PHP变量。
        // var_dump($keywords);
        $keywords=$keywords["g"];
        // var_dump($keywords);
        foreach($keywords as $keword){
            echo $keword['q'].'<br>';
        }
    }
}




$bd= new Bd();
// 版本一
$bd->bdxl();
echo '<hr>';
// 版本二
$bd->bdxl2();
echo '<hr>';
// 版本三
$bd->bdxl3();
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 107.
  • 108.
  • 109.
  • 110.
  • 111.
  • 112.

当然版本二获取的输出打印还是存在问题,这里仅供参考,就不搞了,其实是搞了很久没搞出来...

·················END·················

你好,我是二大爷,

革命老区外出进城务工人员,

互联网非早期非专业站长,

喜好python,写作,阅读,英语

不入流程序,自媒体,seo . . .

公众号不挣钱,交个网友。


PHP与SEO,应用curl库获取百度下拉关键词案例!_php_03

PHP与SEO,应用curl库获取百度下拉关键词案例!_dubbo_04

关注我的都变秃了

说错了,都变强了!

不信你试试

PHP与SEO,应用curl库获取百度下拉关键词案例!_php_05

扫码关注最新动态

公众号ID:eryeji