摘要:上一篇說(shuō)了單頁(yè)面解決解決的問(wèn)題只是用預(yù)處理了標(biāo)簽但是依然沒有內(nèi)容填充所以對(duì)于內(nèi)容抓取依然有些乏力只是解決了從無(wú)到有的問(wèn)題那接下來(lái)可以更進(jìn)一步的預(yù)填充內(nèi)容了預(yù)填充內(nèi)容這里依然使用來(lái)實(shí)現(xiàn)首先在中拉取需要填充的數(shù)據(jù)列表或是具體內(nèi)容修改拉取數(shù)據(jù)部分
上一篇說(shuō)了vue單頁(yè)面解決解決SEO的問(wèn)題
只是用php預(yù)處理了meta標(biāo)簽
但是依然沒有內(nèi)容填充,所以對(duì)于內(nèi)容抓取依然有些乏力,只是解決了從無(wú)到有的問(wèn)題
那接下來(lái)可以更進(jìn)一步的預(yù)填充內(nèi)容了
預(yù)填充內(nèi)容
這里依然使用php來(lái)實(shí)現(xiàn)
首先在php中拉取需要填充的數(shù)據(jù),列表或是具體內(nèi)容
修改拉取數(shù)據(jù)部分
$urlExp = explode("/",$_SERVER["REQUEST_URI"]); if(count($urlExp)>2 && $urlExp[1] == "article"){ //文章頁(yè)拉取內(nèi)容 $ret = @json_decode(http_Req("http://127.0.0.1/api/Blog/getsinglelist",["tuid"=>$urlExp[2]],"POST"),true); if($ret){ $valKeywords = $ret["info"][0]["tt"].",".$valKeywords; $valDescription = $ret["info"][0]["txt"]." - ".$valTitle.",".$valDescription; $valTitle = $ret["info"][0]["tt"]." - ".$valTitle; $info = $ret["info"][0]["info"]; $textData = @file_get_contents("你的文章路徑") ?? $valDescription; }else{ $textData="none"; } } if(!$textData){ //列表頁(yè)拉取列表 $ret = @json_decode(http_Req("http://127.0.0.1/api/Blog/getlist",["page"=>1,"type"=>0],"POST"),true); if($ret){ $textData = ""; foreach ($ret["info"] as $key=>$val) { $textData.="標(biāo)題:".$val["tt"]."."; $textData.="描述:".$val["txt"]."."; $textData.="創(chuàng)建時(shí)間:".$val["ctime"]."."; $textData.="瀏覽次數(shù):".$val["fl"]."."; } } }
然后在html部分輸出相關(guān)內(nèi)容
在body下放一個(gè)div,并且隱藏掉他
這樣爬蟲就可以抓取到我們的內(nèi)容并且不影響前端渲染
優(yōu)化vue構(gòu)建
之前的構(gòu)建是在構(gòu)建完成后修改html為php,有點(diǎn)蠢
這里改下webpack的配置就好了
修改 build/webpack.prod.conf
new HtmlWebpackPlugin({ filename: config.build.index, //這里改為index.php template: "index.php", inject: true, minify: { removeComments: true, collapseWhitespace: true, removeAttributeQuotes: true // more options: // https://github.com/kangax/html-minifier#options-quick-reference }, // necessary to consistently work with multiple chunks via CommonsChunkPlugin chunksSortMode: "dependency" }),
修改 config/index.js
build: { // Template for index.html // 這里改為index.php index: path.resolve(__dirname, "../dist/index.php"), // Paths assetsRoot: path.resolve(__dirname, "../dist"), assetsSubDirectory: "static", assetsPublicPath: "http://cdn.linkvall.cn/", productionSourceMap: true, devtool: "#source-map", productionGzip: false, productionGzipExtensions: ["js", "css"], bundleAnalyzerReport: true }
這樣構(gòu)建時(shí)候的入口文件就變成index.php,構(gòu)建完成的頁(yè)面入口也為index.php
最終效果
等爬蟲更新后就搜到我們的文章了
寫在最后
目前還是用php來(lái)實(shí)現(xiàn)主要是實(shí)現(xiàn)起來(lái)比較簡(jiǎn)單,對(duì)于像我一樣后端是php的比較友好
如果再使用node去監(jiān)聽個(gè)端口的話需要額外開銷和額外的精力去維護(hù)
如果后端是純node的當(dāng)然用node或者直接配置個(gè)SSR更好
關(guān)于首頁(yè)渲染問(wèn)題推薦是用骨架屏
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/29605.html
摘要:遇到的問(wèn)題近來(lái)在寫個(gè)人博客的時(shí)候遇到了大家可能都會(huì)遇到的問(wèn)題單頁(yè)面在時(shí)顯得很無(wú)力,尤其是百度不會(huì)抓取動(dòng)態(tài)腳本配合前后端分離無(wú)法讓標(biāo)簽在蜘蛛抓取時(shí)動(dòng)態(tài)填充單頁(yè)面又是大勢(shì)所趨,寫起來(lái)也不止是一個(gè)爽,當(dāng)然也可以選擇多頁(yè)面但即使是多頁(yè)面在面對(duì)文章 遇到的問(wèn)題: 近來(lái)在寫個(gè)人博客的時(shí)候遇到了大家可能都會(huì)遇到的問(wèn)題 Vue單頁(yè)面在SEO時(shí)顯得很無(wú)力,尤其是百度不會(huì)抓取動(dòng)態(tài)腳本 Vue-Router...
摘要:遇到的問(wèn)題近來(lái)在寫個(gè)人博客的時(shí)候遇到了大家可能都會(huì)遇到的問(wèn)題單頁(yè)面在時(shí)顯得很無(wú)力,尤其是百度不會(huì)抓取動(dòng)態(tài)腳本配合前后端分離無(wú)法讓標(biāo)簽在蜘蛛抓取時(shí)動(dòng)態(tài)填充單頁(yè)面又是大勢(shì)所趨,寫起來(lái)也不止是一個(gè)爽,當(dāng)然也可以選擇多頁(yè)面但即使是多頁(yè)面在面對(duì)文章 遇到的問(wèn)題: 近來(lái)在寫個(gè)人博客的時(shí)候遇到了大家可能都會(huì)遇到的問(wèn)題 Vue單頁(yè)面在SEO時(shí)顯得很無(wú)力,尤其是百度不會(huì)抓取動(dòng)態(tài)腳本 Vue-Router...
摘要:遇到的問(wèn)題近來(lái)在寫個(gè)人博客的時(shí)候遇到了大家可能都會(huì)遇到的問(wèn)題單頁(yè)面在時(shí)顯得很無(wú)力,尤其是百度不會(huì)抓取動(dòng)態(tài)腳本配合前后端分離無(wú)法讓標(biāo)簽在蜘蛛抓取時(shí)動(dòng)態(tài)填充單頁(yè)面又是大勢(shì)所趨,寫起來(lái)也不止是一個(gè)爽,當(dāng)然也可以選擇多頁(yè)面但即使是多頁(yè)面在面對(duì)文章 遇到的問(wèn)題: 近來(lái)在寫個(gè)人博客的時(shí)候遇到了大家可能都會(huì)遇到的問(wèn)題 Vue單頁(yè)面在SEO時(shí)顯得很無(wú)力,尤其是百度不會(huì)抓取動(dòng)態(tài)腳本 Vue-Router...
摘要:上一篇說(shuō)了單頁(yè)面解決解決的問(wèn)題只是用預(yù)處理了標(biāo)簽但是依然沒有內(nèi)容填充所以對(duì)于內(nèi)容抓取依然有些乏力只是解決了從無(wú)到有的問(wèn)題那接下來(lái)可以更進(jìn)一步的預(yù)填充內(nèi)容了預(yù)填充內(nèi)容這里依然使用來(lái)實(shí)現(xiàn)首先在中拉取需要填充的數(shù)據(jù)列表或是具體內(nèi)容修改拉取數(shù)據(jù)部分 上一篇說(shuō)了vue單頁(yè)面解決解決SEO的問(wèn)題 只是用php預(yù)處理了meta標(biāo)簽 但是依然沒有內(nèi)容填充,所以對(duì)于內(nèi)容抓取依然有些乏力,只是解決了從無(wú)...
摘要:先說(shuō)明下上一篇的方法存在作弊行為孤陋寡聞了以前沒接觸過(guò)這些果然不能投機(jī)取巧啊替代方法將原來(lái)放入隱藏標(biāo)簽的內(nèi)容放到骨架屏中用預(yù)渲染這樣頁(yè)面就會(huì)先展示重要的內(nèi)容然后再顯示其他部分麻煩點(diǎn)的就是如果想要好看的話需要將相關(guān)的樣式都粘過(guò)來(lái)寫在最后雖然隱 先說(shuō)明下,上一篇的方法存在作弊行為 孤陋寡聞了,以前沒接觸過(guò)這些,果然不能投機(jī)取巧啊 替代方法 將原來(lái)放入隱藏標(biāo)簽的內(nèi)容放到骨架屏中用php...
閱讀 1506·2021-11-22 09:34
閱讀 1454·2021-09-22 14:57
閱讀 3509·2021-09-10 10:50
閱讀 1547·2019-08-30 15:54
閱讀 3747·2019-08-29 17:02
閱讀 3530·2019-08-29 12:54
閱讀 2685·2019-08-27 10:57
閱讀 3379·2019-08-26 12:24