explore.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?php
  2. set_time_limit(0);
  3. /**
  4. * Created by PhpStorm.
  5. * User: chendeben
  6. * Date: 2019-01-16
  7. * Time: 17:06
  8. */
  9. require_once('vendor/autoload.php');
  10. use PhpOffice\PhpSpreadsheet\Spreadsheet;
  11. use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
  12. use QL\QueryList;
  13. //$ql = QueryList::get('https://www.baidu.com/s?wd=QueryList');
  14. //$titles = $ql->find('h3>a')->texts(); //获取搜索结果标题列表
  15. //$links = $ql->find('h3>a')->attrs('href'); //获取搜索结果链接列表
  16. //print_r($titles);
  17. //print_r($links);
  18. //die();
  19. $wd = $_REQUEST['wd'];
  20. if (!$wd) {
  21. ?>
  22. <!DOCTYPE html>
  23. <html lang="zh-cn">
  24. <head>
  25. <meta charset="utf-8">
  26. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  27. <meta name="viewport" content="width=device-width, initial-scale=1">
  28. <!-- ZUI 标准版压缩后的 CSS 文件 -->
  29. <link rel="stylesheet" href="//cdn.bootcss.com/zui/1.8.1/css/zui.min.css">
  30. <!-- ZUI Javascript 依赖 jQuery -->
  31. <script src="//cdn.bootcss.com/zui/1.8.1/lib/jquery/jquery.js"></script>
  32. <!-- ZUI 标准版压缩后的 JavaScript 文件 -->
  33. <script src="//cdn.bootcss.com/zui/1.8.1/js/zui.min.js"></script>
  34. </head>
  35. <body>
  36. <br>
  37. <br>
  38. <br>
  39. <br>
  40. <form method="post" action="">
  41. <div class="container">
  42. <div class="row">
  43. <div class="col-md-9">
  44. <textarea style="height: 300px;" class="form-control" rows="3" placeholder="请输入关键词,一行一个" name="wd"></textarea>
  45. </div>
  46. </div>
  47. <div class="row" style="margin-top: 5px;">
  48. <div class="col-md-2 col-md-offset-8">
  49. <input type="submit" class="btn btn-primary btn-lg" value="提交"/>
  50. </div>
  51. </div>
  52. </div>
  53. </form>
  54. </body>
  55. </html>
  56. <?php
  57. } else {
  58. $_url = "http://www.baidu.com/s?ie=UTF-8&wd=%s";
  59. $origin_str = [';', ';', ',', ',', ' ',"\r\n"];
  60. $des_str = [',', ',', ',', ',', ',',','];
  61. $wd = str_replace($origin_str, $des_str, $wd);
  62. $keys = explode(",", $wd);
  63. $result = [];
  64. foreach ($keys as $key) {
  65. $url = sprintf($_url, $key);
  66. $ql = QueryList::get($url);
  67. $table = $ql->find("#rs > table");
  68. $tableRows = $table->find('tr')->map(function ($row) {
  69. return $row->find('th')->texts()->all();
  70. });
  71. $data = $tableRows->all();
  72. $_result = [];
  73. foreach ($data as $item) {
  74. foreach ($item as $value) {
  75. $_result[] = $value;
  76. }
  77. }
  78. $result[] = [
  79. 'keyword' => $key,
  80. 'related_keywords' => $_result
  81. ];
  82. }
  83. $spreadsheet = new Spreadsheet();
  84. $sheet = $spreadsheet->getActiveSheet();
  85. $row = 1;
  86. foreach ($result as $key => $item) {
  87. $sheet->setCellValueByColumnAndRow(1, $row++, $item['keyword']);
  88. foreach ($item['related_keywords'] as $related_keyword) {
  89. $sheet->setCellValueByColumnAndRow(2, $row++, $related_keyword);
  90. }
  91. $row++;
  92. }
  93. $writer = new Xlsx($spreadsheet);
  94. header("Pragma: public");
  95. header("Expires: 0");
  96. header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
  97. header("Content-Type:application/force-download");
  98. header("Content-Type:application/vnd.ms-execl");
  99. header("Content-Type:application/octet-stream");
  100. header("Content-Type:application/download");
  101. header('Content-Disposition:attachment;filename="相关搜索词.xlsx"');
  102. header("Content-Transfer-Encoding:binary");
  103. $writer->save('php://output');
  104. $spreadsheet->disconnectWorksheets();
  105. }