Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  php  >  正文 php获取百度、谷歌搜索的url列表

php获取百度、谷歌搜索的url列表

发布时间:2017-01-16   编辑:www.jquerycn.cn
本文分享一例php代码,用于获取百度与谷歌的搜索结果中的url列表,这个很有用的哦。有需要的朋友参考下,希望对大家有一定的帮助。

1,php获取baidu搜索结果中的URL列表。
代码:
 

复制代码 代码示例:

<?php
/*
*  获取百度搜索url
*  edit: www.jbxue.com
*/
echo "Website: www.jbxue.com\r\n";

/*
搜索字符串示例:
[url]http://www.baidu.com/s?wd=test&pn=30&ie=utf-8&usm=2&rsv_page=1&rn=100[/url]

bs=test  搜索的词
ie=utf-8 页码编码
rn=100   每页显示条数
pn=30    搜索多少条 // ($page - 1) * 10;
*/

/********************
* $keywords 搜索字符
* $page     搜索多少页数据
* $num      每页显示条数
* $result   结果集
*
********************/
define("_RESULT",'baidu_result.txt');//保存文件名

$result = array();//保存结果信息

function geturl($keywords, $page, $num)
{
              //$num=100; //每页显示多少条
              //$page=10; //搜索多少页
              $page=($page - 1) * $num;

        //$page = ($page - 1) * 10;
        $content = file_get_contents("http://www.baidu.com/s?wd=$keywords&pn=$page&ie=utf-8&usm=2&rsv_page=1&rn=$num");
        $pregOne = "/<span\s*class=\"g\">(.*?)\/.*?<\/span>/";//得到URL数组
        $fileContent = preg_replace(array("/\<b\>/","/\<\/b\>/"),"",$content); //去除 <b></b> 标签
        preg_match_all($pregOne, $fileContent, $urlList);  //开始正则

        $list= $urlList[1]; //返回获取到的url

        global $result;
        foreach($list as $u)
        {
       if(!in_array(trim($u) , $result))
        $result[] = trim($u);
       }
}
echo "请输入搜索关键字: \r\n";
$baiduDORK = urlencode(fgets(STDIN));
//$baiduDORK='dedecms';//google关键字

echo "保存结果文件: [不输入即默认]: \r\n";
$f_result = trim(fgets(STDIN));
if($f_result==NULL){$f_result=_RESULT;}

if(file_exists("$f_result")){
  @unlink("$f_result");
  echo "结果文件$f_result 以存在,新结果文件将覆盖 ...\r\n";
  }

$names=dirname(__FILE__).DIRECTORY_SEPARATOR.$f_result; //保存文件完整路径

$page = 10;  //页数
$num = 100; //每页显示条数

for ($i=1; $i<=$page; $i++){
        geturl($baiduDORK, $i, $num, $result);
}

if(count($result)<1){
        exit("[-] 数据获取失败!请检查网络环境!\r\n");
}
echo "获取".count($result)."条数据!\r\n";

if(file_put_contents("$names",join("\r\n",$result)))
{
    echo "正在保存数据...\r\n";
    usleep(100000);
    echo "保存位置:\r\n". $names."\r\n\r\n";
}else{
        exit("数据获取失败!请检查网络环境!\r\n");
     }
?>

2,获取google搜索结果的Url列表。
代码:
 

复制代码 代码示例:

<?php
echo "Website: www.jbxue.com\r\n";
//设置超时时间
set_time_limit(0);
error_reporting(E_ERROR);
define("_RESULT",'result.txt');
function geturl($keywords, $page, $num)
{
        $page = ($page - 1) * 10;
        $content =
 file_get_contents("http://www.google.com/search?sclient=psy-ab&hl=en&start=$page&source=hp&q=$keywords&pbx=1&oq=$keywords&num=$num&aq=f&aqi=g4"
 );
        $preg = '/<h3\s*class="r"\s*>.*/im';
        preg_match_all($preg, $content, $m);
        preg_match_all('/<a(.*?)>(.*?)/', $m[0][0], $ms);

        $list = array();
        foreach ($ms[1] as $link)
        {
preg_match('/http:\/\/[a-zA-Z0-9._-]*/', $link, $matches);
if (!empty($matches[0]))
{
        $list[] = $matches[0];
}
        }
        $list = array_unique($list);
        return $list;
}

  echo "Please Enter GoogleDork: \r\n";
$GOOGLEDORK = urlencode(fgets(STDIN));

echo "Result file [Enter for None]: \r\n";
$result = trim(fgets(STDIN));

if($result==NULL){$result=_RESULT;}

if(file_exists("$result")){
  @unlink("$result");
  echo "Clear Cache ...\r\n";
  }

$page = 20;
$num = 100;
for ($i=1;$i<=$page;$i++)
{
        $url = geturl($GOOGLEDORK, $i, $num);
        print_r('[+] Page: '.$i.' Results Count: '.count($url)."\r\n");
            foreach ($url as $u)
            {
               #print_r($u."\r\n");
              @$fp=@fopen('tmp','a');
              @fwrite($fp,$u."\r\n");
              @fclose($fp);

            }
}
$new_filename="$result";
$file=file('tmp');
$array=preg_replace('/($\s*$)|(^\s*^)/m','',$file);
foreach ($array as $key=>$r){

     $array[$key]=trim("$r");

    }
               $names=dirname(__FILE__).DIRECTORY_SEPARATOR.$new_filename;
               $new_array=array_values(array_unique($array));

        if(file_put_contents("$new_filename",join("\r\n",$new_array)))

{
    echo "Get Subdomain Success!\r\n\r\n";
        usleep(100000);
        echo "Save  To:\r\n". $names."\r\n\r\n";

if(file_exists('tmp'))
        {
            @unlink('tmp');
            echo "Clear Cache ...\r\n\r\n";

         }
    }else {
       echo "\r\n[!] Failed! Connect Google Error!\r\n ";
       echo "\r\n[-] Plase Proxy...\r\n";
      }
exit;
?>

您可能感兴趣的文章:
php记录搜索引擎来路及关键词的实现代码
PHP记录搜索引擎来路、关键字的示例代码
php记录搜索引擎关键词的代码示例
php获取百度、谷歌搜索的url列表
影响Google排名各种因素
google 2012.08.11重大调整:降低侵权网站排名
百度、谷歌关键词排名在线查询
看谷歌搜索质量下滑 来谈搜索引擎用户体验
关于网站的重复内容,10个建议
什么是PageRank?

[关闭]