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

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

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

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

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

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

a0edf7a8a2d697925e08ed453d820771.png

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

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

4cf323cf31f5950b39e1ec3470075084.png

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

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

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

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

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

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);

4.php 数组的打印输出

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

5.php 类方法的生成调用

$bd= new Bd();
// 版本一
$bd->bdxl();
echo '<hr>';
// 版本二
$bd->bdxl2();
echo '<hr>';
// 版本三
$bd->bdxl3();

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

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

附源码参考:

<!-- 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();

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

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

你好,我是二大爷,

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

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

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

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

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

读者交流群已建立,找到我备注 “交流”,即可获得加入我们~

听说点 “在看” 的都变得更好看呐~

关注关注二大爷呗~给你分享python,写作,阅读的内容噢~

扫一扫下方二维码即可关注我噢~

a41285a9bfa1eb275d02ac44d5a88368.jpeg

d782889ac5e22dc6df9f08a46527c09a.png

关注我的都变秃了

说错了,都变强了!

不信你试试

54ba28c64e84d746523ae91e2a0b3a42.jpeg

扫码关注最新动态

公众号ID:eryeji

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值