| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <?php
- use PhpOffice\PhpSpreadsheet\Spreadsheet;
- use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
- use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
- use QL\Ext\Baidu;
- use QL\QueryList;
- require_once('vendor/autoload.php');
- $domain = $_REQUEST['domain'];
- $page = $_REQUEST['page']?:2;
- $word = $_REQUEST['word'];
- $ql = QueryList::getInstance();
- //$ql->use(Baidu::class);
- //or Custom function name
- $ql->use(Baidu::class, 'baidu');
- $baidu = $ql->baidu(10);
- //$searcher = $baidu->search('site:csdn.net');
- //$count = $searcher->getCount(); // 获取搜索结果总条数
- //$data = $searcher->page(1,true);
- //print_r($data);
- //die();
- //$data = $searcher->page(2);
- //$searcher = $baidu->search('php');
- //$countPage = 2;//$searcher->getCountPage(); // 获取搜索结果总页数
- $str = "site:".$domain ;
- if ($word) {
- $origin_str = [';', ';', ',', ',', ' ', "\r\n"];
- $des_str = [',', ',', ',', ',', ',', ','];
- $word = str_replace($origin_str, $des_str, $word);
- $word = explode(",", $word);
- }
- $header = [[
- 'title' => '标题',
- 'link' => '链接'
- ]];
- $p = 0;
- $spreadsheet = new Spreadsheet();
- if (!$word){
- $searcher = $baidu->search($str);
- $result = [];
- for ($i = 1; $i <= $page; $i++) {
- $data = $searcher->page($i,true);
- $data = json_decode(json_encode($data), true);
- $data = array_filter($data);
- $result = array_merge($result, $data);
- }
- $act_sheet = $spreadsheet->getActiveSheet();
- $result = array_merge($header, $result);
- $act_sheet->fromArray($result);
- }else{
- foreach ($word as $item) {
- $str = $str . " " . $item;
- $searcher = $baidu->search($str);
- $count = $searcher->getCount();
- $page = $page > $count ? $count : $page;
- $result = [];
- for ($i = 1; $i <= $page; $i++) {
- $data = $searcher->page($i, true);
- $data = json_decode(json_encode($data), true);
- $data = array_filter($data);
- $result = array_merge($result, $data);
- }
- $act_sheet = $spreadsheet->getActiveSheet();
- $result = array_merge($header, $result);
- $title = "关键词:" . $item;
- if ($p == 0) {
- $act_sheet->setTitle($title);
- $act_sheet->fromArray($result);
- } else {
- $sheet = new Worksheet();
- $sheet->setTitle($title);
- $sheet->fromArray($result);
- $spreadsheet->addSheet($sheet);
- }
- $p++;
- }
- }
- try {
- $writer = new Xlsx($spreadsheet);
- header("Pragma: public");
- header("Expires: 0");
- header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
- header("Content-Type:application/force-download");
- header("Content-Type:application/vnd.ms-execl");
- header("Content-Type:application/octet-stream");
- header("Content-Type:application/download");
- header('Content-Disposition:attachment;filename="site数据-[' . $domain . '].xlsx"');
- header("Content-Transfer-Encoding:binary");
- $writer->save('php://output');
- $spreadsheet->disconnectWorksheets();
- } catch (\PhpOffice\PhpSpreadsheet\Exception $e) {
- }
|