整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          在laravel中使用simple_html_dom爬取顯示整本小說

          文為php中文網認證作者:“L先生”投稿,歡迎加入php中文網有償投稿計劃!

          如在《程序員還看帶廣告的小說》中所述,很多小說網站基本都有特別煩人的廣告,要么在整體div添加鏈接,誤觸就會跳轉到一些網站甚至是死循環,某些手機app也是廣告很多,本文就將其應用到laravel框架,最好先了解上一篇,隨后自行部署就可以了。

          一、在laravel引入第三方類

          1.在項目根目錄下app目錄中新建一個文件夾命名為Lib(自定義名稱)

          2.如果引入第三方庫多的話可以在Lib下再新建幾個目錄分類,由于只引入了一個類,這里沒有新建文件夾。(根據引入類的多少自己定義)

          將simple_html_dom.php復制到Lib下

          3.找到項目根目錄下的composer.json文件,將第三方類的路勁寫入autoload下的classmap中,這樣才能自動加載

          "autoload": {"classmap": ["database/seeds","database/factories","app/Lib/simple_html_dom.php"]},

          4.在cmd控制臺中切換到項目根目錄,執行命令:

          composer dumpautoload

          5.在控制器中use這個類即可

          use simple_html_dom;

          $html = new simple_html_dom(); 使用

          二、創建路由

          Route::get('/novel_list','index\Spnovel@index');

          三、創建控制器Spnovel.php

          <?php

          namespace App\Http\Controllers\index;

          use simple_html_dom;

          use Illuminate\Http\Request;

          use App\Http\Controllers\Controller;

          class Spnovel extends Controller

          {

          public function index(){

          $url = "https://www.7kzw.com/85/85445/";

          $list_html = mySpClass::getCurl($url);

          $data['List'] = self::getList($list_html);

          return view('index.spnovel.index',$data);

          }

          private static function getList($list_html){

          $html = new simple_html_dom();

          @$html->load($list_html);

          $list = $html->find('#list dd a');

          foreach ($list as $k=>$v) {

          $arr1=$arr2=[];

          $p1 = '/<a .*?>(.*?)<\/a>/i';

          $p2 = '/<a .*? href="(.*?)">.*?<\/a>/i';

          preg_match($p1,$v->outertext,$arr1);

          preg_match($p2,$v->outertext,$arr2);

          $content[$k][0]=$arr1[1];

          $content[$k][1]=$arr2[1];

          }

          array_splice($content,0,12);

          return $content;

          }

          }

          class mySpClass{

          // 向服務器發送最簡單的get請求

          public static function getCurl($url,$header=null){

          // 1.初始化

          $ch = curl_init($url); //請求的地址

          // 2.設置選項

          curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//獲取的信息以字符串返回,而不是直接輸出(必須)

          curl_setopt($ch,CURLOPT_TIMEOUT,10);//超時時間(必須)

          curl_setopt($ch, CURLOPT_HEADER,0);// 啟用時會將頭文件的信息作為數據流輸出。

          //參數為1表示輸出信息頭,為0表示不輸出

          curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); //不驗證證書

          curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false); //不驗證證書

          if(!empty($header)){

          curl_setopt($ch,CURLOPT_HTTPHEADER,$header);//設置頭信息

          }else{

          $_head = [

          'User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0'

          ];

          curl_setopt($ch,CURLOPT_HTTPHEADER,$_head);

          }

          // 3.執行

          $res = curl_exec($ch);

          // 4.關閉

          curl_close($ch);

          return $res;

          }

          }

          以上代碼的解釋:首先要對laravel框架了解,對php類要有所了解

          訪問了以上路由,運行的是Spnovel.php控制器中的index方法,$url是某一本小說的章節列表的地址,將其作為參數運行自定義類mySpClass中的getcurl方法,返回這個頁面的html文檔字符串。

          運行此類中的getList方法,參數是需要解析的html字符串。將這個方法私有化,使用simple_html_dom解析,配置正則提取出每章的url地址和章節名稱。

          并返回這個數組,通過return view('index.spnovel.index',$data);將打開index/spnovel/index.blade.php,請看index.blade.php

          四、創建視圖index.blade.php

          <!DOCTYPE html>

          <html>

          <head>

          <title>爬取的小說列表</title>

          <style type="text/css">

          body{padding:0px;margin:0px;}

          #lists{width:100%;padding:30px 50px;box-sizing:border-box;}

          ul{margin:0;padding: 0;overflow:hidden;}

          ul li{list-style:none;display:inline-block;float:left;width:25%;color:#444;}

          ul li:hover{color:#777;cursor: pointer;}

          img {z-index:-1;width:100%;height:100%;position:fixed;}

          </style>

          </head>

          <body>

          <img src="/static/img/index/novelbg.jpg">

          <div id="lists">

          <ul>

          @foreach($List as $item)

          <li>

          <a href="/novel_con{{$item[1]}}">{{$item[0]}}</a>

          </li>

          @endforeach

          </ul>

          </div>

          </body>

          </html>

          以上代碼的解釋:css就簡單的寫到這里,img是作為背景圖片的。ul里面循環li,{{$item[1]}}是獲得的地址參數,{{$item[0]}}是獲得的章節名稱。看一下數組和最后的效果。

          五、運行

          接下來就是每一章節的內容了

          先看路由

          Route::get('/novel_con/{a}/{b}/{c}','index\Spnovel@get_nContent');

          這與每一章的url參數相對應,比如某一章的參數為:novel_con/85/85445/27248645.html

          寫get_nContent方法

          public function get_nContent(Request $req){

          $url1 = $req->a.'/'.$req->b.'/'.$req->c;

          $url = "https://www.7kzw.com/".$url1;

          $res = mySpClass::getCurl($url);//獲得

          // 開始解析

          $data['artic']= self::getContent($res);

          $next = (int)$req->c;

          $next = $next+1;

          $data['artic']['next']="/novel_con/".$req->a.'/'.$req->b.'/'.$next.'.html';

          return view('index.spnovel.ncontent',$data);

          }

          private static function getContent($get_html){

          $html = new simple_html_dom();

          @$html->load($get_html);

          $h1 = $html->find('.bookname h1');

          foreach ($h1 as $k=>$v) {

          $artic['title'] = $v->innertext;

          }

          // 查找小說的具體內容

          $divs = $html->find('#content');

          foreach ($divs as $k=>$v) {

          $content = $v->innertext;

          }

          // 正則替換去除多余部分

          $pattern = "/(<p>.*?<\/p>)|(<div .*?>.*?<\/div>)/";

          $artic['content'] = preg_replace($pattern,'',$content);

          return $artic;

          }

          解釋:$req->a,$req->b,$req->c,分別是三個參數,然后將其合并為一個完整的請求某一章的地址,然后還是通過mySpClass::getCurl獲得某一章的html字符串。

          然后使用本類中的getContent解析這個頁面,先看解析方法,和上篇文章一章解析出章節的標題和內容,寫到數組中,并且去掉了多余的文字廣告部分。

          $next則是存放的下一章的地址,用于在章節詳情頁面跳轉。

          視圖ncontent.blade.php

          <!DOCTYPE html>

          <html>

          <head>

          <title>{{$artic['title']}}</title>

          <style type="text/css">

          h2{text-align:center;padding-top:30px;}

          div{margin:20px 50px;font-size:20px;}

          img {z-index:-1;width:100%;height:100%;position:fixed;}

          .next {position:fixed;right:10px;bottom:20px;background:coral;border-radius:3px;padding:4px;}

          .next:hover{color:#fff;}

          </style>

          </head>

          <body>

          <img src="/static/img/index/novelbg.jpg">

          <h2>{{$artic['title']}}</h2>

          <a href="{{$artic['next']}}" class="next">下一章</a>

          <div>

          {!!$artic['content']!!}

          </div>

          </body>

          </html>

          解釋:因為只有當前一篇所以不需要循環,{{$artic['title']}}就是標題,也可以寫到title中。{!!$artic['content']!!}的寫法就是不需要轉義文章的內容,否則就會有很多其他字符了,如<br>等。

          下一章的按鈕的地址直接就用傳遞過來的即可,position:fixed固定定位按鈕,隨時可以下一章。

          運行

          總結:本文最重要的環節就是引入第三方類,能夠應用他,還有就是laravel的基礎,比較習慣使用控制器視圖這種方式,帶模型的方式還請自行編寫驗證。

          就對一本小說來說這就足夠了,當然我們可以擴充,將整站的小說列表寫出來,繼續傳合適的參數就更加完美了。

          (聲明:該示例小說是隨便找的,絕對不是推廣,侵刪)

          家好,我是明哥。

          前兩天我用WordPress 給自己搭建了一個網站,整個過程非常的順利,體驗非常地好,于是我就整個過程、以及其中的一些搭建心得,記錄下來。

          如果你也正好有搭建個人網站的想法,那么本文會給你一個參考,也許看了這篇文章你就可以不用再百度、甚至谷歌了,因為我會寫得 足夠的細致而系統

          1. 寫在前面

          說到網站,其實我搭建過挺多個了。

          從最開始的 Hexo 靜態博客,到后來使用 Django 仿照 Hexo -Next 主題自己寫了一個有后端的個人博客。

          再后來又發現了 Sphinx + Github + ReadtheDocs 完美的文檔編排組合,用了搭建了四個網站,分別是:

          1. 黑魔法 Python:http://magic.iswbm.com
          2. PyCharm 中文指南:http://pycharm.iswbm.com
          3. Python 編程時光:http://python.iswbm.com
          4. Go 編程時光:http://golang.iswbm.com

          這些四個網站,很好的將我這幾年來寫的文章進行分類,并以精美的排版展現在每一個需要的人眼前。

          四個網站,用的都是三級子域名,可見在我心里,他們無論哪一個都無法成為我心中的個人網站。

          原因有幾點:

          1. 內容過于分散,不能代表一個完整的我。
          2. 可定制性太低:沒有頭像,沒有評論系統等等
          3. 對 SEO 太不友好了,不利于曝光
          4. 托管在 ReadtheDocs上,訪問速度太慢。

          雖然有不少讓我心痛的地方,但是它們卻有流淌在基因里的優勢:

          1. 無成本(時間成本當然不算啦):你不需要服務器,也不需要域名。
          2. 新手友好,只要簡單配置,就能立馬快速上手。

          好像扯遠了,還是說回 WP 的網站搭建吧。

          在教程之前呢,我先 show 一下我的成果,歡迎你去點點點~

          網站地址:https://iswbm.com

          2. 準備工作

          一臺 Linux 服務器

          在開始搭建網站之前,當然第一步是購買一個屬于自己的 『服務器』。

          你可以選擇如下渠道進行購買:

          • 阿里云
          • 騰訊云
          • Ucloud

          等的大廠服務器,不要貪圖便宜去買國外的服務器廠商,因為速度很慢很多,很影響體驗。

          我的就是在 阿里云 上購買的,剛開始買個最低配置的服務器就行,以后不夠用了,可以慢慢升級,擴容。

          可以先領個券,再購買更實惠:點擊領券

          如果是學生可以在領券頁面里找到學生專享,服務器9.5元/月,直接點擊購買即可。不是學生也可以組團購買,更便宜,服務器購買就不多說了,拿錢就好了。

          一個專屬的域名

          買了服務器后,你就會擁有一個公網ip,如果網站搭建起來了,你完全可以使用這個 ip 去訪問,但僅供開發、測試使用。

          如果要真正運營起來,想要有流量,還得搞一個域名,方便你推廣。

          域名的購買建議和上面服務器使用同一個廠商,可以省去一些麻煩。比如阿里云購買的域名要備案是需要你在阿里云下有一臺服務器的。

          一個遠程登陸軟件

          由于后面我使用的是手工部署的方式,所以要登陸服務器進行操作。

          登陸的方法有兩種:

          1. 廠商提供的控制臺界面登陸:Workbench 和 VNC

            這種方法對于不經常登陸服務器運維的人來說,還是挺香的。

          1. 自己下載專業的遠程登陸軟件:Xshell 或者 CRTSecure

          在使用這些遠程登陸軟件時,你需要在服務器廠商控制臺上面先獲取到三個信息

          • 服務器公網IP
          • 服務器SSH端口
          • 服務器遠程連接密碼

          關于 Xshell 如何使用的,可以自行百度搜索,教程非常多。

          可以到阿里云上去購買,選最低配置就足夠啦,后續訪問量起來了再擴容升級。

          2. 部署方式選擇

          部署方式,可分為兩種

          1. 使用服務器管理軟件,實現自動化部署,最著名的就是 寶塔面板 。
          2. 手動登陸遠程服務器,實現腳本化部署。

          那么如何選擇呢?

          使用寶塔部署,門檻低,只要會界面點一點即可。

          而使用腳本自己手工部署,需要你學會

          • 遠程登陸服務器:使用 Xshell 或者 直接使用廠商提供的在線SSH窗口
          • 一些 Linux 的基本操作:比如 Vi/Vim 的使用,目錄及文件的基本操作等

          在這里建議大家跟著我使用第二種方法,也就是手工使用腳本進行部署。

          原因有二:

          1. 第一次接觸,更精細的部署步驟會讓你對 WordPress 的運作方式有更深的理解,比如使用了哪些軟件,裝了哪些包?
          2. 自己搭建了網站,難免以后會碰到各種各樣的服務器問題,盡早的接觸 Linux,熟悉各項配置,對以后的運維工作會有很有幫助。

          3. 部署 LNMP

          3.1 什么是 LNMP

          LNMP 是 Linux + Nginx + MySQL + PHP 組合的簡寫。

          類似的組合還有:

          • LAMP 的全稱是 Linux + Apache + MySQL + PHP
          • LNAMP 的全稱是 Linux + Nginx + Apache + MySQL + PHP

          其中:

          • Linux 是類 Unix 計算機操作系統的統稱,是目前最流行的免費操作系統。代表版本有:debian、centos、ubuntu、fedora、gentoo 等。

          • Nginx 是一個高性能的 HTTP 和反向代理服務器,也是一個 IMAP/POP3/SMTP 代理服務器。

          • Apache 是世界使用排名第一的Web服務器軟件。 它可以運行在幾乎所有廣泛使用的計算機平臺上,由于其跨平臺和安全性被廣泛使用,是最流行的Web服務器端軟件之一。

          • PHP 是一種在服務器端執行的嵌入 HTML 文檔的腳本語言。

          • MySQL 是一個關系型數據庫管理系統。

          這些軟件一個一個安裝比較費力,特別是數據庫。

          因此有人把這些軟件的安裝部署過程集成為一個 Shell 腳本,而你只要下載并執行它就可以了。簡直不要太方便。

          3.2 安裝 LNMP

          下載 LNMP 安裝腳本(目前最新版本是 1.7 ,我安裝的是 1.5,更多版本可查看: https://lnmp.org/download.html)

          $ wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz

          解壓并執行它

          $ tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp

          接下來會出現大量的選項,如果你不是很懂各個選項間的區別,按默認就行啦

          運行腳本后,首先會讓你選擇數據庫的版本:

          沒有特殊需要,建議使用默認配置,直接回車或輸入序號再回車。

          選好數據庫,會讓你設置數據庫 root 用戶的密碼,此時如果你直接回車,會默認設置為 lnmp.org#隨機數字

          在輸入密碼的時候,對于新手有一點注意:如果輸入有錯誤需要刪除,需要按住Ctrl再按Backspace鍵進行刪除。

          密碼輸好后,回車進入下一步

          詢問是否需要啟用 MySQL InnoDB,InnoDB引擎默認為開啟,一般建議開啟,直接回車或輸入 y 。

          如果確定確實不需要該引擎可以輸入 n,(MySQL 5.7+版本無法關閉InnoDB),輸入完成,回車進入下一步:選擇 PHP 版本,建議安裝 PHP 7+的版本

          回車進入下一步,選擇是否安裝內存優化:

          可以選擇不安裝、Jemalloc或TCmalloc,輸入對應序號回車,直接回車為默認為不安裝。

          如果是LNMPA或LAMP的話還會提示設置郵箱和選擇Apache:

          “Please enter Administrator Email Address:”,需要設置管理員郵箱,該郵箱會在報錯時顯示在錯誤頁面上。再選擇Apache版本:

          按提示輸入對應版本前面的數字序號,回車。

          提示"Press any key to install...or Press Ctrl+c to cancel"后,按回車鍵確認開始安裝。 LNMP腳本就會自動安裝編譯Nginx、MySQL、PHP、phpMyAdmin等軟件及相關的組件。

          安裝時間可能會幾十分鐘到幾個小時不等,主要是機器的配置網速等原因會造成影響。

          如果顯示Nginx: OK,MySQL: OK,PHP: OK

          表明安裝成功。

          最后幾行的輸出

          • 3306 端口是 MySQL 監聽的
          • 80 是 HTTP 端口
          • 22 是 SSH 端口

          3.3 配置 Nginx

          安裝好后,使用如下指令查看nginx配置文件(如果你的服務器上找不到該文件,那請使用 find / -name nginx.conf 搜索一下)

          $ cat /usr/local/nginx/conf/nginx.conf

          你會看到如下內容:

          上圖表明,安裝好的nginx將網站的根目錄設置為/home/wwwroot/default,這個可以根據自己的喜好進行修改。

          用瀏覽器打開http://ip,可以看到如下內容:

          其實這就是一個簡單的網頁demo了,自己隨便修改index.html,就會有不同的內容。

          4. 安裝 WordPress

          WordPress是使用PHP語言(這也是我們上面為什么要安裝 PHP 的原因)開發的博客平臺,也就是一個博客框架。

          上一步安裝的 LNMP,只是保證了 WordPress 的基本運行環境。

          想要把你的個人網站跑起來,咱還需要安裝 WordPress 。

          方法也很簡單,下面跟著操作就行。

          第一步:安裝 wordpress 安裝包并解壓到 /home/wwwroot

          $ wget https://cn.wordpress.org/latest-zh_CN.zip && unzip latest-zh_CN.zip -d /home/wwwroot

          第二步:登錄MySQL(密碼在前面 部署LNMP 時你設置過),創建wordpress表,創建完后輸入exit退出。

          $ mysql -u root -p
          Enter password: 
          MySQL > create database wordpress;

          第三步:使用 vim 修改 nginx 配置文件(不會vim的自行百度)

          $ vim /usr/local/nginx/conf/nginx.conf

          找到網站根目錄位置,如下圖所示:

          修改成如下內容:

          隨后,使用wq保存配置退出即可。

          驗證nginx是否有配置錯誤:

          $ nginx -t

          如果出現ok,successful字樣,說明沒有錯誤。沒有錯誤,重新加載nginx:

          $ nginx -s reload

          修改wordpress目錄權限:

          $ cd /home/wwwroot && chown -R www wordpress/ && chgrp -R www wordpress/

          用瀏覽器打開http://ip/wp-admin/setup-config.php,你可以看到如下內容:

          現在就開始,進行安裝。填寫信息如下:

          其中,*** 改為你設置的MySQL數據庫密碼。點擊提交,出現如下內容:

          在/home/wwwroot/wordpress下,創建并編寫wp-config.php文件:

          $ vim wp-config.php

          將上圖內容復制進去并wq保存退出,然后點擊現在安裝。最后就是配置用戶信息了,這個是你登錄wordpress用戶后臺的,要記住:

          最后點擊安裝WordPress,安裝成功會出現如下界面:

          點擊登錄,輸入賬戶密碼,就可以登錄自己的 wordpress 后臺了。

          這時候你使用瀏覽器去訪問 http://ip ,就可以看到你搭建的第一個網站了。

          此時你看到的這個網站,是 wordpress 默認為你安裝的免費主題(應該有三個),可能并不是那么的好看,但沒關系,后面我會教大家如何挑選一個自己合適的主題,把你的網站裝扮得有模有樣。

          5. 裝扮你的網站

          到這里,你的網站部署已經全部完成,但是還差最后一步,也是使用 WordPress 最為核心的一步:讓你的網站看起來更加專業,更加成熟。

          為此我們需要做兩件事:

          1. 安裝主題:讓網站變得好看
          2. 安裝插件:豐富網站的功能

          5.1 安裝主題

          同樣都使用的 WordPress 的網站,外觀上卻天差地別。有的很酷炫,有點很簡約,這是因為選了不同的主題(可以理解為皮膚)。

          在你安裝完 WordPress 后,本身就自帶了幾個免費的主題。

          幾乎沒人會使用它們,因為實在沒什么亮點(就是丑)。

          在 WordPress 的自帶了主題商店,里面有大量的免費主題,各式各樣的都有,可能有你喜歡的。

          在這里要說明一點,我的主題不是在商店里安裝的,而是我通過搜索引擎找到了一個比較清爽的主題,很符合我的審美,我裝扮過后的效果如下。

          如果你想和我用一樣的主題,我已經將安裝包打包好了(需要的添加我微信領取: stromwbm),直接下載后,按下圖的方式上傳到你的 WordPress 后臺安裝就行。

          5.2 安裝插件

          目前我安裝的插件比較少,但是基本夠用啦,下面列舉一下,如果你有什么好插件介紹,可以評論區推薦一下:

          1. WP User Avatar

          原生 WordPress 默認使用 Gravatar頭像,用戶(包括訪客評論)的頭像調取都是根據所留郵箱匹配的 Gravatar 頭像。

          沒有 Gravatar 怎么辦?

          只要裝上 WP User Avatar 這個插件就能可以使用 WordPress 媒體庫中的圖片作為默認頭像了。

          2. WP-PostViews

          安裝了 WP-PostViews,就可以統計你文章的瀏覽次數。

          需要兩步配置

          第一步:設置顯示的文字

          第二步:在你要顯示的位置寫入如下代碼

          效果如下

          3. Post Views Counter

          咦,上面已經安裝了一個統計閱讀量的插件,怎么這邊又推薦一個。

          上面那個統計閱讀量的插件,其實做的比較粗糙。

          這是什么意思。

          比如同一個 ip 連續連刷10次,WP-PostViews 的閱讀量會 +10,但如果你使用 Post Views Counter,這個規則可以由你來定,可以只顯示一次。

          安裝完這個插件后,同樣需要進行一些配置

          為什么這里選擇手動呢?

          因為我發現不管在內容之前,還是在內容之后,顯示的位置都比較尷尬(它會換行)。

          如果你和我用一樣的主題,想和我有一樣的效果,那么你選擇手動之后,還要按下圖指示修改下代碼,新增如下一段代碼。

          效果如下

          4. WP Editor.md

          或許這是一個WordPress中最好,最完美的Markdown編輯器。

          可以像 md2all 和 mdnice 那樣,即時顯示 Markdown 的渲染效果,喜歡在后臺寫文章的可以安裝(其實我是先本地 Typora 寫好了再復制上去的)。

          5. Simple Custom CSS

          在修改 WordPress主題時,CSS修改是最經常用到的方法,比如調整字體、調整顏色、邊距之類的都需要用到自定義的CSS代碼。

          雖然說 WordPress 本身提供了CSS修改的功能,不過使用起來有很多的弊端,其中最麻煩的一點就是每次更換或者更新主題之前的修改都會消失,需要重復的添加。

          使用 Simple Custom CSS 這個插件可以避免這種尷尬,安裝后他會在 外觀 下新增一個 自定義CSS 的選項。

          6. LuckyWP Table of Contents

          使用我這個主題,在文章頁面是沒有目錄索引的,對于讀者來說,其實挺不方便的。

          因此我安裝了 LuckyWP Table of Contents,可以在我的文章中生成一個目錄。目錄默認是隱藏的(當然你也可以設置默認展示),需要的話再點擊展開。

          點擊目錄可以直接跳轉到對應位置。

          但可能是我這個主題的原因,我的網站無法跳轉,如果有人知道原因,還請留言區評論一下。

          7. 百度搜索推送管理

          百度搜索推送管理插件是一款針對WP開發的功能非常強大的百度和Bing搜索引擎收錄輔助插件。

          利用該插件,站長可以快速實現百度搜索資源平臺和Bing站長平臺URL數據推送及網站百度收錄數據查詢等。

          目的在于進一步提升網站的百度和Bing搜索引擎收錄效率,提升網站SEO優化效果;及幫助站長通過該插件了解網站百度收錄數據情況,基于數據統計參考進一步對網站內容進行調整與優化。

          具體使用方法比較復雜,自己百度一下吧

          8. Smart SEO Tool

          Smart SEO Tool是一款專門針對WordPress開發的智能SEO優化插件,與眾多WordPress的SEO插件不一樣的是,Smart SEO Tool更加簡單易用,幫助站長快速完成WordPress博客/網站的SEO基礎優化。

          6. 優化你的網站

          6.1 使用固定鏈接

          先在后臺按如下圖示進行設置

          但是這樣不夠,要使用固定鏈接,服務器還需要開啟 rewrite 的功能。

          如果你和我使用的是 nginx ,那么只要登陸服務器,在

          /usr/local/nginx/conf/nginx.conf 里的 server 里加上這一段(我放在倒數第二段)

          location / {
                  if (!-e $request_filename) {
                          rewrite (.*) /index.php;
                  }
          }

          然后重啟一下 nginx

          $ systemctl restart nginx

          6.2 網站添加備案號

          如果你的域名已經備案了,最好將你的備案號放到底部(好像會有檢查)。

          6.3 美化文章的排版

          一個好的排版,能夠極大提升閱讀體驗,因此定制一個好的排版非常有必要。

          我網站里的文章排版樣式,借用的是 mdnice 的主題,個人非常喜歡。

          /* 二級標題 */
          .view-content h2 {
            margin: 40px 20px auto;
            height: 40px;
            background-color: rgb(251, 251, 251);
            border-bottom: 1px solid rgb(246, 246, 246);
            overflow: hidden;
            box-sizing: border-box;
          }
          
          /* 二級標題內容 */
          .view-content h2  {
            margin-left: -10px;
            display: inline-block;
            width: auto;
            height: 40px;
            background-color: rgb(33, 33, 34);
            border-bottom-right-radius:100px;
            color: rgb(255, 255, 255);
            padding-right: 30px;
            padding-left: 30px;
            line-height: 40px;
            font-size: 16px;
          }
          
          /* 二級標題修飾 請參考有實例的主題 */
          .view-content h2:after {
          }
          
          
          /* 三級標題內容 */
          .view-content h3 {
            margin-top: 5px;
            padding-top: 20px;
            padding-right: 5px;
              padding-bottom: 5px;
            padding-left: 5px;
            font-size: 17px;
            border-bottom: 2px solid rgb(33, 33, 34);
            line-height: 1.1;
          }
          
          
          /* 引用文字 */
          .view-content blockquote p {
              color: #353535;
              font-size: 16px;
              margin: 0 10px;
              display: block;
          }
          
          .view-content .blockquote:after {
              content: "”";
              float: right;
              display: block;
              font-size: 2em;
              color: rgb(248, 57, 41);
              font-family: Arial, serif;
              line-height: 1em;
              font-weight: 700;
          }
          
          /* 二維碼顯示 */
          header .gongzhonghao {
              color: #fff;
              font-size: 14px;
              position: absolute;
              bottom: 30px;
          }
          
          header .weixinhao {
              color: #fff;
              font-size: 14px;
              position: absolute;
              bottom: 180px;
          }

          6.4 部署 HTTPS

          關于如何部署 HTTPS ,我在之前的文章里講過一種。

          今天再介紹另外一種:使用寶塔。

          注冊并登陸寶塔(https://bt.cn),然后進入控制面板,進行實名認證。

          點擊申請證書

          選擇免費的就好

          填寫你的域名后,支付訂單(其實不要錢)。

          然后點擊詳情,需要驗證該域名是歸你所有。

          方法它會告訴你,登陸我的阿里云域名解析,根據如下提示去添加 DNS解析規則

          然后靜待一段時間驗證成功了,就可以點擊如下按鈕,下載數據證書。

          下載到本地后,你會得到一個 zip 包,解壓一下,就可以看到證書文件及私鑰。

          因為我的博客使用的是 Nginx,因此我該 Nginx 下的兩個文件上傳到我的服務器上的 nginx 目錄下.

          具體怎么上傳呢?你可以使用遠程拷貝軟件,例如 WinSCP,也可以使用 lrzsz (推薦使用)。

          傳到哪個目錄下呢?

          先使用 find 命令查找一下你的 nginx.conf 路徑

          $ find / -name nginx.conf
          /usr/local/nginx/conf/nginx.conf

          你的證書文件可以和 nginx.conf 放在同一目錄下

          /usr/local/nginx/conf

          接下來使用 vim 編輯該文件,找到 server,添加如下行( server 原本的內容 我使用 ... 表示,意思是不需要去動。 )

          server
              {
                  listen 443 ssl;
                  # 注釋掉該行
                          # listen 80 default_server reuseport;
          
                  #證書文件名稱
                  ssl_certificate 1_iswbm.com_bundle.pem;
                  #私鑰文件名稱
                  ssl_certificate_key 0_iswbm.com.key;
          
                          ...
              }

          最后重啟 nginx

          $ systemctl restart nginx

          嘗試用 https 訪問一下我的網站 https://iswbm.com,非常順利。

          到這里,事情其實還沒有結束,你還需要做兩件事情:

          第一件事:在后臺進行一些配置,不然從網站跳轉的時候還是會使用 http

          第二件事:將 http 重定向到你 https,不然有人在瀏覽器輸入 iswbm.com 時,訪問的還是 http。

          使用 vim 編輯 /usr/local/nginx/conf/nginx.conf,在原本 server 的前面加入下面這么一段代碼

          server {
                  listen 80;
                  server_name iswbm.com;
                  rewrite ^(.*) https://$server_name$1 permanent;
                  }

          然后再重啟 nginx

          $ systemctl restart nginx

          6.5 圖床開啟HTTPS

          由于我之前的 markdown 文章,使用的圖床都是 七牛云,當時并沒有開啟 https,現在網站開啟了 https 后,自然圖片也要開啟,不然瀏覽器會顯示有部分不安全的資源。

          登陸七牛云,然后進入 證書管理 上傳證書(注意這個證書得另外申請,不能使用先前申請的 iswbm.com 證書)。

          進入對象存儲 -> 域名管理,找到 HTTPS 配置的位置,點擊 修改配置

          將按鈕置為開啟狀態,選擇我們剛剛上傳的證書。

          設置完后,并不能立馬使用

          域名的升級需要一定時間,等待即可。

          以上就是我搭建網站的全部總結,寫了兩個晚上,直到昨晚才完成。

          全文一共 5000 多字,昨晚寫的時候,還出了個小插曲,文章被我誤刪除了,無論怎么 ctrl + z 都回不來,找了很多方法,都行不通。。

          把我嚇得都快哭了,生怕今天發不出來文章

          好在最后 Typora 還是給我留了一條生路,它居然支持 文件的版本控制,真是有驚無險,差點今天就要哭了。

          寫文章不容易(特別是這種長文),如果覺得本文寫得還可以,給明哥轉發下文章,可以嗎

          implenote安卓中文版是一個非常好用的筆記軟件,支持云端同步和跨平臺使用,還支持標簽分類管理,十分方便!可以用來記錄個人待辦事項、購物清單、會議記錄、課堂筆記、博客草稿、靈感點子、生活日記、想看的書和電影、想去的餐廳地址等所有你需要用文字記錄下來的東西。支持賬號登陸并在多部設備間同步。

          軟件介紹

          簡單筆記Simplenote APP是一款非常方便的筆記記錄工具軟件,這款軟件能夠幫助用戶隨時隨地的記錄下靈感以及當時發生的事情,不管是生活中發生的還是工作學習上的事情都可以立即記錄下來。

          軟件特色

          簡潔清晰的應用界面,給用戶一種舒心的感受體驗,界面友好;

          提供簡單輕巧的APP,隨時隨地記錄想記的事物信息,信息記錄便捷;

          筆記記錄操作簡單,打開即可筆記記錄,全面享受即開即用筆記記錄;

          只要是自己想記的信息都可以通過文字方式記錄下來,記錄全面;

          快速筆記記錄,輸入文字秒秒即可記錄,筆記記錄更快,更快捷;

          存文本信息保存,文字信息記錄事物,查看信息更直觀、清楚。

          軟件功能

          一鍵新建筆記,快速記錄需要記錄的筆記信息,筆記記錄極速;

          查看所有筆記,全部的筆記信息清晰顯示,掌握每次筆記信息;

          通過搜索,輸入關鍵字即可快速查找出記錄的筆記信息,快速筆記搜索;

          可以到回收站,查看到所有刪除的筆記信息,可以將刪除的筆記進行恢復;

          記錄的信息可以分享給微信好友及朋友圈,分享給更多的好友看到;

          這里支持自己的賬號登錄多部終端設備,多設備上筆記記錄及查看。

          原文地址:http://www.3h3.com/az/183239.html


          主站蜘蛛池模板: 亚洲熟妇无码一区二区三区导航| 国产精品区AV一区二区| 国产福利电影一区二区三区,亚洲国模精品一区 | 亚洲国产成人久久一区WWW | 日韩精品无码中文字幕一区二区| 日本免费一区二区三区最新vr| 文中字幕一区二区三区视频播放 | 国产一区二区三区在线观看精品 | 国产激情精品一区二区三区 | 夜夜添无码一区二区三区| 精品国产一区二区三区免费看| 久久精品国产第一区二区三区| 精品人体无码一区二区三区| 国产一区二区三区在线免费观看| 精品性影院一区二区三区内射| 熟女性饥渴一区二区三区| 国产精品亚洲产品一区二区三区| 视频一区二区三区在线观看| 在线电影一区二区| 国产福利一区二区三区视频在线| 国偷自产一区二区免费视频| 国产av熟女一区二区三区| 亚洲国产精品一区二区九九 | 蜜桃无码AV一区二区| 亚洲AV午夜福利精品一区二区| 韩国福利一区二区三区高清视频| 国产精品 一区 在线| 亚洲男人的天堂一区二区| 久久免费视频一区| 国产亚洲自拍一区| 亚洲av午夜福利精品一区| 亚洲av午夜福利精品一区人妖| 无码aⅴ精品一区二区三区浪潮| 亚洲一区二区三区四区在线观看 | 无码日本电影一区二区网站| 中文字幕AV一区二区三区人妻少妇| 国产乱码一区二区三区四| 国产一区二区草草影院| 精品乱人伦一区二区| 高清国产精品人妻一区二区| 亚洲一区二区三区播放在线|