PHP抓取百度搜索结果页面的【相关搜索词】并存储

来源:互联网 发布:用数据做电泳图 编辑:程序博客网 时间:2024/04/29 01:08

一、百度搜索关键词【知了壳公司转让】

这里写图片描述

【知了壳公司转让】搜索链接
https://www.baidu.com/s?wd=%E7%9F%A5%E4%BA%86%E5%A3%B3%E5%85%AC%E5%8F%B8%E8%BD%AC%E8%AE%A9

这里写图片描述

**搜索结果部分源代码**<div id="rs"><div class="tt">相关搜索</div><table cellpadding="0"><tbody><tr><th><a href="/s?wd=%E5%85%AC%E5%8F%B8%E8%BD%AC%E8%AE%A9%E6%B5%81%E7%A8%8B%E7%9F%A5%E4%BA%86%E5%A3%B3&amp;rsp=0&amp;f=1&amp;oq=%E7%9F%A5%E4%BA%86%E5%A3%B3%E5%85%AC%E5%8F%B8%E8%BD%AC%E8%AE%A9&amp;tn=baiduhome_pg&amp;ie=utf-8&amp;rsv_idx=2&amp;rsv_pq=88c7804a0000c417&amp;rsv_t=b5f3JkJIsj6Nkp61K%2BmmVGeev7UP95o1HSJTUoIS2xV4SsmZxvOoVf%2BAZaVoihB%2BT3bg&amp;rqlang=cn&amp;rsv_ers=xn0&amp;rs_src=0&amp;rsv_pq=88c7804a0000c417&amp;rsv_t=b5f3JkJIsj6Nkp61K%2BmmVGeev7UP95o1HSJTUoIS2xV4SsmZxvOoVf%2BAZaVoihB%2BT3bg">公司转让流程知了壳</a></th>..........<th><a href="/s?wd=%E7%9F%A5%E4%BA%86%E5%A3%B3%E5%85%AC%E5%8F%B8%E6%B3%A8%E5%86%8C&amp;rsp=8&amp;f=1&amp;oq=%E7%9F%A5%E4%BA%86%E5%A3%B3%E5%85%AC%E5%8F%B8%E8%BD%AC%E8%AE%A9&amp;tn=baiduhome_pg&amp;ie=utf-8&amp;rsv_idx=2&amp;rsv_pq=88c7804a0000c417&amp;rsv_t=b5f3JkJIsj6Nkp61K%2BmmVGeev7UP95o1HSJTUoIS2xV4SsmZxvOoVf%2BAZaVoihB%2BT3bg&amp;rqlang=cn&amp;rsv_ers=xn0&amp;rs_src=0&amp;rsv_pq=88c7804a0000c417&amp;rsv_t=b5f3JkJIsj6Nkp61K%2BmmVGeev7UP95o1HSJTUoIS2xV4SsmZxvOoVf%2BAZaVoihB%2BT3bg">知了壳公司注册</a></th></tr></tbody></table></div>

二、抓取并保存本地

这里写图片描述

源代码

index.php------------<form action="index.php" method="post"><input name="q" type="text" /><input type="submit" value="Get Keywords" /></form><?phpheader('Content-Type:text/html;charset=gbk');class ComBaike{    private $o_String=NULL;    public function __construct(){        include('cls.StringEx.php');        $this->o_String=new StringEx();    }    public function getItem($word){        $url = "http://www.baidu.com/s?wd=".$word;        // 构造包头,模拟浏览器请求        $header = array (            "Host:www.baidu.com",            "Content-Type:application/x-www-form-urlencoded",//post请求            "Connection: keep-alive",            'Referer:http://www.baidu.com',            'User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; BIDUBrowser 2.6)'        );        $ch = curl_init ();        curl_setopt ( $ch, CURLOPT_URL, $url );        curl_setopt ( $ch, CURLOPT_HTTPHEADER, $header );        curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );        $content = curl_exec ( $ch );        if ($content == FALSE) {        echo "error:" . curl_error ( $ch );        }        curl_close ( $ch );        //输出结果echo $content;        $this->o_String->string=$content;        $s_begin='<div id="rs">';        $s_end='</div>';        $summary=$this->o_String->getPart($s_begin,$s_end);        $s_begin='<div class="tt">相关搜索</div><table cellpadding="0"><tr><th>';        $s_end='</th></tr></table></div>';        $content=$this->o_String->getPart($s_begin,$s_end);        return $content;    }    public function __destruct(){        unset($this->o_String);        }}if($_POST){    $com = new ComBaike();    $q = $_POST['q'];    $str = $com->getItem($q); //获取搜索内容    $pat = '/<a(.*?)href="(.*?)"(.*?)>(.*?)<\/a>/i';         preg_match_all($pat, $str, $m);        //print_r($m[4]); 链接文字    $con = implode(",", $m[4]);    //生成文件夹    $dates = date("Ymd");    $path="./Search/".$dates."/";    if(!is_dir($path)){        mkdir($path,0777,true);     }    //生成文件    $file = fopen($path.iconv("UTF-8","GBK",$q).".txt",'w');    if(fwrite($file,$con)){        echo $con;        echo '<script>alert("success")</script>';    }else{        echo '<script>alert("error")</script>';    }    fclose($file);}?>cls.StringEx.php-------------<?phpheader('Content-Type: text/html; charset=UTF-8');class StringEx{    public $string='';    public function __construct($string=''){        $this->string=$string;    }    public function pregGetPart($s_begin,$s_end){        $s_begin==preg_quote($s_begin);        $s_begin=str_replace('/','\/',$s_begin);        $s_end=preg_quote($s_end);        $s_end=str_replace('/','\/',$s_end);        $pattern='/'.$s_begin.'(.*?)'.$s_end.'/';        $result=preg_match($pattern,$this->string,$a_match);        if(!$result){            return $result;        }else{            return isset($a_match[1])?$a_match[1]:'';        }    }    public function strstrGetPart($s_begin,$s_end){        $string=strstr($this->string,$s_begin);        $string=strstr($string,$s_end,true);        $string=str_replace($s_begin,'',$string);        $string=str_replace($s_end,'',$string);        return $string;    }    public function getPart($s_begin,$s_end){        $result=$this->pregGetPart($s_begin,$s_end);        if(!$result){            $result=$this->strstrGetPart($s_begin,$s_end);        }        return $result;    }}?>
0 0
原创粉丝点击