oogle SEO 中的爬取、索引跟 搜索引擎排名,分別是什么意思呢?在學(xué)習(xí)SEO之前,必定要先了解一下谷歌搜索引擎的運(yùn)作方式。從你的網(wǎng)站文章發(fā)布的那一瞬間,你的文章網(wǎng)址會(huì)經(jīng)歷:被找到、被爬取(檢索)、被索引,然后才能出現(xiàn)在 Google 搜索引擎里面并且加入 Google 搜索結(jié)果的排名。上面的這個(gè)過(guò)程,從網(wǎng)址被找到,一直到被爬取跟索引,然后再到開(kāi)始在 Google 搜索引擎排名,這就是 Google 搜索引擎的運(yùn)作方式。
了解 Google 搜索引擎的運(yùn)作方式非常重要,因?yàn)?Google 在檢索、索引到搜索引擎排名的過(guò)程當(dāng)中,有非常多的 SEO 知識(shí)在里面。例如 Google 檢索時(shí)是檢索哪些東西?Google 索引時(shí)是索引哪些東西?當(dāng)你的文章開(kāi)始加入 Google 搜索引擎排名,文章的初始排名是怎么決定的?這中間隱含大量的 SEO 知識(shí)跟排名要素(Ranking factors)在里面。
如果你還不知道SEO中的爬取、索引跟排名的整個(gè)過(guò)程以及運(yùn)作方式,本篇文章會(huì)做一個(gè)完整的介紹,讓你了解 Google 搜索引擎的基本運(yùn)作原理。
當(dāng)一個(gè)新的網(wǎng)址出現(xiàn)的時(shí)候,它一定會(huì)經(jīng)歷「被找到」的過(guò)程,所以雖然我們可以將 Google 搜索引擎的運(yùn)作方式分成:檢索(爬取)、索引跟排名,但其實(shí)前面還有一個(gè)「找到」網(wǎng)址的過(guò)程。
這里將網(wǎng)址被找到、爬取(檢索)、索引跟排名,簡(jiǎn)單說(shuō)明如下。
Google 找到網(wǎng)址
當(dāng)一個(gè)新頁(yè)面出現(xiàn)時(shí),Google 的爬蟲(chóng)必然會(huì)先找到該網(wǎng)址,并且將該網(wǎng)址加入網(wǎng)址庫(kù),然后比對(duì)一下網(wǎng)址庫(kù)里面是不是有這條網(wǎng)址,如果確認(rèn)是新的網(wǎng)址,就會(huì)按排時(shí)間去檢索(爬取)。
在 Google Search Console 里面的「涵蓋范圍」功能當(dāng)中,你也可以清楚看到一條網(wǎng)址它的「發(fā)現(xiàn)方式」,可能是從你提交的 Sitemap 當(dāng)中發(fā)現(xiàn)的,也有可能是從別的網(wǎng)址找到你這條鏈接的。
seo
Google 爬存(檢索)
當(dāng)有新的網(wǎng)址出現(xiàn)在 Google 數(shù)據(jù)庫(kù)中的網(wǎng)址庫(kù)之后,就會(huì)安排時(shí)間去檢索,其實(shí)「檢索」是官方的名稱(chēng),熊貓先生也比較喜歡用「檢索」這個(gè)詞,不過(guò)在 SEO 界里,檢索很常被稱(chēng)作「爬取」,你只要知道它們指的都是 Crawl 就可以了。無(wú)論是爬取還是檢索,都是指 Crawl 。
在 Google search Console 里面的「涵蓋范圍」功能,你也可以很清楚的看到關(guān)于「檢索」的訊息。下面有兩個(gè)重要的觀念:
seo
當(dāng)爬蟲(chóng)程序爬取了你的頁(yè)面之后,會(huì)將整個(gè)網(wǎng)頁(yè)的信息壓縮并存入數(shù)據(jù)庫(kù)里面,在「檢索」階段,Google 存入數(shù)據(jù)庫(kù)的信息就像是用戶(hù)打開(kāi)瀏覽器時(shí)得到的 HTML 網(wǎng)頁(yè),一直要到「索引」階段,才會(huì)將檢索的資料去蕪存菁,只索引重要的信息。
Google 索引
Google 在索引階段要處理的東西很多,因?yàn)?Google 不可能將你網(wǎng)頁(yè)上全部的 HTML 源代碼,或是各種文字都存入數(shù)據(jù)庫(kù),這樣數(shù)據(jù)庫(kù)會(huì)變得過(guò)于龐大而沒(méi)有效益,所以 Google 「索引」階段肯定只會(huì)索引重要的東西,而這些東西會(huì)影響你這個(gè)網(wǎng)址之后在某個(gè)「關(guān)鍵字」的排名。
那么,Google 到底索引了哪些東西?常見(jiàn)的會(huì)被索引的信息包含如下:
1.重要的關(guān)鍵詞
Google 是如何提取頁(yè)面中的關(guān)鍵詞,這個(gè)只有 Google 內(nèi)部人員才知道,通常提取的關(guān)鍵詞可能也有 10 個(gè)以上,而且每個(gè)被提取出來(lái)的關(guān)鍵詞,其權(quán)重加總之后通常不一樣。
唯一可以肯定的是,頁(yè)面中的Meta title、H1、H2肯定是重點(diǎn)。這也是為什么很多SEO人都強(qiáng)調(diào)關(guān)鍵詞要出現(xiàn)在標(biāo)題或是H2里面的重要性。
2.鏈接與錨文字
頁(yè)面中的鏈接與錨點(diǎn)文字也是會(huì)被索引的東西。
3.圖片 Alt text
圖片當(dāng)中的 alt text ,也是會(huì)被提取的文字。
4.關(guān)鍵字的文字大小(font-size)
根據(jù) Google 的 Pagerank 原始文件,有特別提到,Google 會(huì)提取關(guān)鍵字大約的文字大小,文字越大通常重要性也越高。
5.文章中的粗體字
粗體字通常是<strong>或是<b>這樣的標(biāo)簽,粗體字也會(huì)是被記錄的信息。
6.關(guān)鍵字在頁(yè)面中的位置
關(guān)鍵詞出現(xiàn)在頁(yè)面中的位置,也是會(huì)被記錄在索引數(shù)據(jù)庫(kù)里面。
除了上面提到的這幾點(diǎn)資訊以外,Google 肯定還索引了其它東西,但很多東西是我們不知道的,這些被用來(lái)索引的東西,通常也可以視為 SEO 排名要素(Ranking factors)。
Google 排名
當(dāng)你的某個(gè)頁(yè)面網(wǎng)址被索引之后,基本上就已經(jīng)可以出現(xiàn)在 Google 搜索引擎里面并加入排名了。Google 號(hào)稱(chēng)有兩百多條 SEO 排名要素,這200 多條排名要素都會(huì)在整個(gè) SEO 關(guān)鍵詞排名中起到一定程度的作用,有些影響作用很大(例如反向鏈接),有些影響作用比較小(例如關(guān)鍵字出現(xiàn)在 URL 網(wǎng)址里)。
從上面你應(yīng)該已經(jīng)了解到,Google 搜索引擎的運(yùn)作原理,基本上就是四個(gè)階段:網(wǎng)址被找到、網(wǎng)址被爬取、網(wǎng)址被索引跟網(wǎng)址被排名。簡(jiǎn)單的講,谷歌搜索引擎的運(yùn)作原理有這四個(gè)階段。
從事 SEO 工作的人必須非常了解這四個(gè)階段的各種 SEO 細(xì)節(jié),你才能從中找到一些問(wèn)題,例如以下幾個(gè)重點(diǎn):
關(guān)于 Google 搜索引擎的運(yùn)作原理,其實(shí) Matt Cutts 在 Youtube 網(wǎng)站上有一段視頻,講解的非常清楚,這段視頻建議一定要看。Matt Cutts 的這段視頻清楚的解釋了:Google 爬取、索引跟排名的過(guò)程。
在 Google 搜索引擎的關(guān)鍵詞排名的過(guò)程中,除了參考 Google 索引中的資料,另外還有 Pagerank 跟 200 多條 SEO 排名要素(注意:Google 索引中的資料,有些本身就是排名要素)。
除了上面這只影片之外,Matt Cutts 在另外一只影片,也提到了 Google 搜索引擎的運(yùn)作方式,下面這只視頻也建議一定要看,你會(huì)對(duì) Google 搜索引擎的運(yùn)作原理與搜索引擎排名有更深的理解。
在 Google 的「索引」過(guò)程當(dāng)中,有件事特別重要,那就是「正向索引」跟「倒序索引」,如果不是具有理工背景的人,可能很難理解這兩個(gè)概念。
下面分別解釋 Google 索引中的正向索引與倒序索引。
正向索引
每個(gè)網(wǎng)址都被指派一個(gè)獨(dú)一無(wú)二的 DocID,這個(gè)數(shù)據(jù)表中儲(chǔ)存著該網(wǎng)頁(yè)的重要關(guān)鍵詞。
倒序索引
Google 透過(guò)正向索引的數(shù)據(jù),改變其索引方式,換成以關(guān)鍵字為鍵值的數(shù)據(jù)表,每個(gè)數(shù)據(jù)列都有一個(gè) KeywordID,每個(gè) KeywordID 里面包含著重要的網(wǎng)址(DocID)。
當(dāng)用戶(hù)在 Google 搜索關(guān)鍵詞的時(shí)候,Google 會(huì)去調(diào)用倒序索引里面的資料,這樣查詢(xún)速度才會(huì)快,因?yàn)槿绻褂谜蛩饕Y料表,這樣查詢(xún)會(huì)變得超級(jí)慢,因?yàn)榫W(wǎng)路上有上百億個(gè)網(wǎng)頁(yè),這計(jì)算時(shí)間實(shí)在太過(guò)龐大,這也是為什么原本的正向索引必須改成倒序索引的原因。
seeo
除了處理 API 請(qǐng)求和 HTML 等傳統(tǒng)內(nèi)容外, Web 服務(wù)器應(yīng)處理雙向文件傳輸。 非常大的文件可能需要在不占用太多系統(tǒng)內(nèi)存的中傳輸。
您還可以提供對(duì)文件目錄的訪問(wèn)權(quán)限 (ands 子目錄,任何深度) 與靜態(tài)文件 .
為了處理大文件,F(xiàn)astAPI 的上傳和下載 功能需要以下額外模塊:
FastAPI 以 API 開(kāi)發(fā)為目標(biāo), 本書(shū)中的大多數(shù)示例都使用了JSON請(qǐng)求 和響應(yīng)。 但是在最后一章中,你看到了表格,它們的處理方式不同。 本章介紹文件,這些文件在某些方面被視為表單。
FastAPI 提供兩種文件上傳技術(shù): 文件() 和上傳文件 。
File() 用作直接文件上傳的類(lèi)型。 您的路徑函數(shù)可能是同步的 ( def ) 或異步(異步定義), 但是異步版本更好,因?yàn)樗粫?huì) 在上傳文件時(shí)綁定您的 Web 服務(wù)器。
FastAPI 會(huì)將文件分成塊并重新組裝 在內(nèi)存中,所以 File() 應(yīng)該只用于 相對(duì)較小的文件。 而不是假設(shè)輸入是 JSON, FastAPI 將文件編碼為表單元素。
讓我們編寫(xiě)代碼來(lái)請(qǐng)求文件,并對(duì)其進(jìn)行測(cè)試。 您可以獲取計(jì)算機(jī)上的任何文件進(jìn)行測(cè)試, 或者從等網(wǎng)站下載一個(gè)。 我從那里拿了一個(gè) 1K 文件, 并將其本地保存為 。
在例 19-1 中, 將這些行添加到您的頂部 :
@app . post ( "/small" )
async def upload_small_file ( small_file : bytes=File ()) -> str :
return f "file size: { len ( small_file ) } "
Uvicorn 重新啟動(dòng)后,嘗試示例 19-2 中的 Httpi 測(cè)試:
$ http -f -b POST http://localhost:8000/small small_file@1KB.bin
"file size: 1000"
一些注意事項(xiàng):
示例 19-3 是等效的編程測(cè)試:
$ python
>>> import requests
>>> url="http://localhost:8000/small"
>>> files={ 'small_file' : open ( '1KB.bin' , 'rb' )}
>>> resp=requests . post ( url , files=files )
>>> print ( resp . json ())
file size : 1000
對(duì)于大文件,最好使用 上傳文件 . 這將創(chuàng)建一個(gè)蟒蛇 假脫機(jī)臨時(shí)文件對(duì)象,主要在服務(wù)器的磁盤(pán)上 而不是在內(nèi)存中。 這是一個(gè), 支持方法 read() 、write() 和 seek() 。 示例 19-4 顯示了這一點(diǎn), 并且還使用異步定義而不是定義 以避免在文件時(shí)阻止 Web 服務(wù)器 正在上傳的片段:
from fastapi import UploadFile
@app . post ( "/big" )
async def upload_big_file ( big_file : UploadFile ) -> str
return f "file size: { big_file . size } , name: { big_file . filename } "
File() 創(chuàng)建了一個(gè)字節(jié)對(duì)象并需要括號(hào)。 上傳文件是另一類(lèi)對(duì)象。
如果 Uvicorn 的起動(dòng)電機(jī)尚未磨損, 現(xiàn)在是測(cè)試時(shí)間。 這一次 示例 19-5 和 19-6 使用 一個(gè)千兆字節(jié)的文件 () 我從中抓住的。
$ http -f -b POST http://localhost:8000/big big_file@1GB.bin
"file size: 1000000000, name: 1GB.bin"
>>> import requests
>>> url="http://localhost:8000/big"
>>> files={ 'big_file' : open ( '1GB.bin' , 'rb' )}
>>> resp=requests . post ( url , files=files )
>>> print ( resp . json ())
file size : 1000000000 , name : 1 GB . bin
可悲的是,重力不會(huì)使文件下載更快。 相反,有上傳方法的等效項(xiàng)。
首先,在示例 19-7 中, 是一次性版本, 文件響應(yīng) :
from fastapi import FastAPI
from fastapi.responses import FileResponse
app=FastAPI ()
@app . get ( "/small/ {name} " )
async def download_small_file ():
return FileResponse ( name )
這里有一個(gè)測(cè)試在某個(gè)地方。 首先,將文件 放在與 相同的目錄中。 現(xiàn)在,示例 19-8:
$ http -b http://localhost:8000/small/1KB.bin
-----------------------------------------
| NOTE: binary data not shown in terminal |
-----------------------------------------
如果您不信任該抑制消息, 示例 19-9 通過(guò)管道將輸出傳輸?shù)?像 WC 這樣的實(shí)用程序,用于確保您返回 1,000 字節(jié):
$ http -b http://localhost:8000/small/1KB.bin | wc -c
1000
與文件上傳類(lèi)似,最好下載大文件 與流響應(yīng) , 以塊的形式返回文件。 示例 19-10 顯示了這一點(diǎn),并使用異步 def 路徑功能,以避免在不使用 CPU 時(shí)阻塞。 我現(xiàn)在跳過(guò)錯(cuò)誤檢查;如果文件路徑 不存在,open() 調(diào)用將引發(fā)異常。
from typing import Generator
from fastapi.responses import StreamingResponse
def gen_file ( path : str ) -> Generator :
with open ( file=path , mode="rb" ) as file :
yield file . read ()
@app . get ( "/download_big/ {name} " )
async def download_big_file ( name : str ){
gen_expr=gen_file ( file_path=path )
response=StreamingResponse (
content=gen_expr ,
status_code=200 ,
)
return response
gen_expr 是 gen_file() 返回的。 StreamingResponse 使用它來(lái) 可迭代內(nèi)容參數(shù), 因此,它可以分塊下載文件。
示例19-11是隨附的測(cè)試。 (這首先需要文件以及 , 并且需要更長(zhǎng)。
$ http -b http://localhost:8000/big/1GB.bin | wc -c
1000000000
傳統(tǒng)的 Web 服務(wù)器可以處理服務(wù)器文件 就好像它們?cè)谄胀ㄎ募到y(tǒng)上一樣。 FastAPI 允許你做到這一點(diǎn) 與靜態(tài)文件 .
對(duì)于此示例,讓我們創(chuàng)建一個(gè)目錄 (無(wú)聊的)免費(fèi)文件 供用戶(hù)下載。
示例 19-12 將提供任何以 開(kāi)頭的 URL(我也可以在這里使用任何文本字符串) 使用目錄中的文件:
from pathlib import Path
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
app=FastAPI ()
# Directory containing main.py:
top=Path ( __file__ ) . resolve . parent
app . mount ( "/static" ,
StaticFiles ( directory=f " { top } /static" , html=True ),
name="free" )
頂部計(jì)算確保我將靜態(tài)與 main.py 放在。 __file__變量是完整的 此文件的路徑名 ()。
示例 19-13 是手動(dòng)測(cè)試它的一種方法:
$ http -b localhost:8000/static/abc.txt
abc :)
我傳遞給的html=True參數(shù)呢 靜態(tài)文件() ? 這使得它的工作方式更像傳統(tǒng)服務(wù)器, 返回文件(如果該目錄中存在索引文件) 但您沒(méi)有在 URL 中明確要求。 因此,讓我們?cè)谀夸浿袆?chuàng)建一個(gè) 文件 與內(nèi)容哦。你好!,然后使用示例 19-11 進(jìn)行測(cè)試:
$ http -b localhost:8000/static/
Oh. Hi!
您可以擁有任意數(shù)量的文件(以及包含文件的子目錄等) 如你所愿。 在下創(chuàng)建一個(gè)子目錄 ,并在那里放置兩個(gè)文件:
我不會(huì)在這里包括這些例子。 自己嘗試一下,希望有更多的命名想象力。
本章展示了如何上傳或下載文件 - 小的,大的,甚至是gigantifer的。 另外,如何以懷舊(非API)Web樣式提供 從目錄中。
腦中文件日積月累,重重疊疊,可以使用Everthing,Listary之類(lèi)的搜索軟件快速查找,但難以一窺全豹,如何解決這個(gè)問(wèn)題呢?可以嘗試下小巧的目錄快照軟件——Snap2HTML。
一、動(dòng)圖演示
二、操作步驟
1.打開(kāi)軟件任意選擇一個(gè)磁盤(pán),如C盤(pán),并如上圖勾選“啟用”和“創(chuàng)建完成時(shí)在瀏覽器打開(kāi)”,完成后點(diǎn)擊創(chuàng)建快照;
2.選擇目錄文件存放位置并修改文件名;
3.等待生成目錄文件(速度很快);
4.生成的目錄文件很小,170G的源文件目錄文件只有13.4M;
5.文件生成后在默認(rèn)瀏覽器中打開(kāi),有詳細(xì)的統(tǒng)計(jì)數(shù)據(jù)和目錄,點(diǎn)擊對(duì)應(yīng)文件夾可找到具體的文件;
6.也可以在右上角的搜索窗口用關(guān)鍵詞進(jìn)行搜索,如PPT,可找到C盤(pán)中關(guān)于PPT的文件;
7.還可以通過(guò)瀏覽器打開(kāi)對(duì)應(yīng)的文件直接查看,如視頻(MP4)、音頻(MP3)和圖片等。
好了,以上就是快速建立電腦文件索引的方法,有需要的請(qǐng)?jiān)诠娞?hào)知趣技能(zhiqujineng)回復(fù)“目錄”即可獲取軟件了!
*請(qǐng)認(rèn)真填寫(xiě)需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。