site.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. use PhpOffice\PhpSpreadsheet\Spreadsheet;
  3. use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
  4. use QL\Ext\Baidu;
  5. use QL\QueryList;
  6. require_once('vendor/autoload.php');
  7. $domain = $_POST['domain'];
  8. $page = $_POST['page'];
  9. $word = $_POST['word'];
  10. $ql = QueryList::getInstance();
  11. $ql->use(Baidu::class);
  12. //or Custom function name
  13. $ql->use(Baidu::class, 'baidu');
  14. $baidu = $ql->baidu(10);
  15. $str = "site:" . $domain;
  16. if ($word) {
  17. $str = $str . " " . $word;
  18. }
  19. $searcher = $baidu->search($str);
  20. $count = $searcher->getCount();
  21. $page=$page>$count?$count:$page;
  22. $result=[];
  23. for ($i = 1; $i <= $page; $i++) {
  24. $data = $searcher->page($i, true);
  25. $data = json_decode(json_encode($data), true);
  26. $result=array_merge($result,$data);
  27. }
  28. $header = [[
  29. '标题',
  30. '链接',
  31. ]];
  32. $result=array_merge($header,$result);
  33. $spreadsheet = new Spreadsheet();
  34. try {
  35. $title="site数据";
  36. $sheet = $spreadsheet->getActiveSheet();
  37. $sheet->setTitle($title);
  38. $sheet->fromArray($result);
  39. $writer = new Xlsx($spreadsheet);
  40. header("Pragma: public");
  41. header("Expires: 0");
  42. header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
  43. header("Content-Type:application/force-download");
  44. header("Content-Type:application/vnd.ms-execl");
  45. header("Content-Type:application/octet-stream");
  46. header("Content-Type:application/download");
  47. header('Content-Disposition:attachment;filename="'.$title.'.xlsx"');
  48. header("Content-Transfer-Encoding:binary");
  49. $writer->save('php://output');
  50. $spreadsheet->disconnectWorksheets();
  51. } catch (\PhpOffice\PhpSpreadsheet\Exception $e) {
  52. }
  53. //$data = $searcher->page(1,true);
  54. //$data=json_decode(json_encode($data),true);
  55. //print_r($data);