一天,老板不滿地說:“喂,你這C#爬蟲怎么連標題都沒給我抓回來?我需要的是一份完整的報告,包括所有網頁的標題,趕緊給我重新抓一遍!”那一刻,我仿佛看到了老板眼中閃爍的怒火,感受到了他對我工作的失望。
我仿佛看到了老板眼中閃爍的怒火,就像是火山即將爆發前的預兆。我心里咯噔一下,知道這次可能玩大了。
我趕緊賠著笑臉說:“老板,真不好意思,這次是我的失誤。我馬上就去給您抓回那些‘逃跑’的標題!”
其實我心里暗笑,因為那些標題我早就抓回來了,只是故意沒展示出來。這可是職場生存法則啊,不能一次交出所有秘密,得留點懸念,讓老板對你始終保持期待和好奇。你覺得這樣做對嗎?歡迎討論,哈哈!
代碼其實很簡單:
// 使用XPath查詢獲取title標簽
HtmlNode titleNode=doc.DocumentNode.SelectSingleNode("//title");
//這行代碼是使用C#的HtmlAgilityPack庫來從HTML文檔中提取<title>標簽的內容。
//目的是從doc表示的HTML文檔中選擇第一個<title>標簽,并將這個標簽的節點對象賦值給titleNode變量。
如果要獲取<title>標簽中的文本內容,這樣寫:
string titleText=titleNode?.InnerText;
這里,?.是一個null條件運算符,如果titleNode為null(也就是說沒有找到<title>標簽),
則titleText會被賦值為null,否則,它會被賦值為<title>標簽中的文本內容。
這個代碼是怎么使用的呢?下面我解釋下實現過程:
static string? ParseTitleData(string htmlContent)
{
if (string.IsNullOrEmpty(htmlContent))
{
return null;
}
HtmlDocument doc=new HtmlDocument();
doc.LoadHtml(htmlContent);
// 使用XPath查詢獲取title標簽
HtmlNode titleNode=doc.DocumentNode.SelectSingleNode("//title");
if (titleNode !=null)
{
// 獲取title節點的文本內容
string titleText=titleNode.InnerText.Trim();
return "頁面標題: " + titleText;
}
else
{
// 如果沒有找到title標簽,返回null
return null;
}
}
//這段代碼定義了一個名為 ParseTitleData 的靜態方法,
//它接受一個 htmlContent 字符串作為輸入,并試圖從中解析出網頁的標題。
//該方法使用 HtmlAgilityPack 庫來解析 HTML 內容。
是不是很簡單?這個方法的目的是從給定的 HTML 內容中提取網頁的標題。如果成功找到標題,它會返回一個包含 "頁面標題: " 和實際標題的字符串。如果 HTML 內容為空、null 或不包含 <title> 標簽,它會返回 null。
看效果:
完整代碼是包括如何異步獲取網頁內容的。如果有朋友需要的話,請關注我并留言,今天就寫到這吧,太晚了,休息啦!
標題標簽是指定網頁標題的HTML元素。標題標簽顯示在搜尋引擎結果頁面(SERP)上,做為特定結果的可點擊標題,對可用性,搜尋引擎優化和社交分享非常重要。網頁的標題標簽是對網頁內容的準確和簡潔的描述。
在下面輸入您的標題,看看它會在Google的搜索結果中顯示。
<head> <title>Example Title</title> </head>
主要關鍵字- 次要關鍵字| 品牌名稱- 分類名稱- 主項目名稱
Google通常顯示標題標簽的前50-60個字符。如果您的標題保留在60個字符以內,我們的研究表明,您可以預期大約90%的標題能正確顯示。沒有確切的字符限制,因為字符寬度可能不同,Google的顯示標題最大(當前)為600像素。
標題標簽是幫助搜尋引擎了解你的網頁的最主要因素,也是許多人對你網頁的第一印象。標題標簽用于三個關鍵位置:
您的標題標簽決定了您在SERP中的顯示標題(有幾個例外),也是搜索訪問者對您網站的首次體驗。即使您目前的網站排名不錯,一個好的標題也是決定是否有人點擊您的連結的主要因素。
您的標題標簽也會顯示在您的網站瀏覽器的頂端,并且占用空間,尤其是習慣在瀏覽器打開許網站的瀏覽這來說。獨特和容易識別的標題與前面放置最重要關鍵字是有助于確保人們不會失去對網頁內容的追蹤。
一些外部網站(尤其是社群網路)會使用您的標題標簽來確定共享該網頁時顯示的內容。請記住,某些社群網路(包括Facebook和Twitter)有自己的標記方式,允許您指定與主標題標記不同的標題。這可以讓您針對每個網站進行優化,并在可能有用的地方提供完整的標題。
因為標題標簽是SEO和搜尋用戶體驗(UX)的重要組成部分,所以有效地撰寫標簽是一個高質量,低成本,高影響力的SEO任務。以下是執行SEO標題標簽的重要建議:
如果您的標題太長,搜尋引擎可能會以省略號(“...”)截斷標題,有可能會忽略掉重要文字,雖然建議保留標題長度不超過60個字符,但真正的文字范圍是會復雜一點。即使在合理的長度限制內,搜尋引擎可能會選擇顯示與您在標題標簽中提供的標題不同的標題。例如,Google可能會將您的品牌附加到標題上。
在某些情況下,較長的標題可能更適合社群分享,對于有些標題也是比較自然的,長標題在搜尋結果中的顯示方式是比較好的,并且使用長標題不會有任何處罰,使用自己的判斷方式,并且如同一個查詢者一樣去思考。
雖然Google的演算法沒有對長標題進行懲罰,但是如果在標題中重復填入關鍵字而造成的瀏覽者體驗不佳,您還是可能會被逞罰,例如:
購買小工具,最好的小工具,便宜的小工具,出售小工具
避免標題多次使用關鍵字或重復使用關鍵字變化,因為這些標題對瀏覽者不適合的,可能會讓您在搜尋引擎中遇到麻煩。搜索引擎是可以解析關鍵字變體的,但是將每個關鍵字填入到標題中是不必要的也是適得其反的。
獨特的標題可幫助搜索引擎了解您的內容是獨一無二且有價值的,同時還能提高點擊率。在數百或數千頁的規模上,似乎不可能為每個頁面創建一個獨特的標題,但現代內容管理系統【CMS】和使用程式碼的模組,應該允許至少為每個頁面或是幾乎每個重要頁面寫入獨特標題, 例如如果您有成千上萬的產品網頁和產品名稱和的類別的資料,可以使用該資料輕松生成如下的標題:
[產品名稱] - [產品類別] | [品牌]
根據經驗,接近標題標簽開頭的關鍵字可能會對搜尋排名產生更大的影響。另外,用戶體驗研究表明,人們可以掃描標題的前兩個字。這就是為什么我們建議網頁最獨特的部分(例如產品名稱)需要先出現標題在標題前,必須避免像這樣的標題:
品牌|主要產品類別- 次要產品類別- 產品名稱
如果您擁有強大的知名品牌,那么將其添加到您的標題中可能有助于提高點擊率,不過我們通常還是建議把品牌放在標題的末尾,但有些情況下(比如您的首頁或關于公司的頁面)您可能希望更注重品牌,如前所述,Google可能會將您的品牌自動附加到您的顯示標題上,所以需要注意您的搜索結果當前的顯示方式。
盡管標題標簽對SEO非常重要,但請記住,您的主要工作是吸引具有針對性的訪問者的點擊,這些訪客可能會發現您的內容有價值。除了優化和關鍵字用法之外,在創建標題標簽時考慮整個用戶體驗至關重要。標題標簽是一個新的訪問者與您的品牌在搜索結果中第一次互動- 它應該傳遞盡可能正確和準確的訊息。
有時,Google可能會顯示與您的標題標簽不符的標題。這可能令人沮喪,但是要強制他們使用你定義的標題并不容易。發生這種情況時,有四種可能的解釋。
如上所述,如果您嘗試使用關鍵字填充標題(有時稱為“過度優化”),Google可能會選擇將標題重寫,經由很多因素分析后并考慮重寫您的標題,使得于搜尋用戶更有好處。
如果您的網頁與標題中沒有與搜尋查詢匹配,則Google可能會選擇重寫您的顯示標題,這也不一定是壞事- 沒有標題可以匹配每一個相對應的搜尋- 并且如果您的標題是可以被重寫與取代,經由大量的搜尋后,并且考慮重寫它,可以更好地匹配這些關鍵字搜尋結果和他們的期待。
在某些情況下,如果您添加備用標題程式,例如Facebook或Twitter的元標記,Google可能會選擇使用這些標題,同樣的,這不一定是壞事,但是如果這樣做會產生一個不想顯示的標題,那么您可能需要重寫備用標題程式。
在極少數情況下,搜索引擎可能會從DMOZ(又名開放目錄項目)中提取一個標題。如果您在搜索中的顯示標題與您的標題標簽不匹配,但與您的DMOZ列表匹配,則可以使用Robots NOODP標簽阻止該替換,如下所示:
<meta name="robots" content="noodp ">
Title 對象
Title 對象代表了一個HTML <title> 元素。
訪問 Title 對象
你可以使用getElementsByTagName()來訪問 <title> 元素:
var x=document.getElementsByTagName("TITLE")[0];
創建 Title 對象
你可以使用document.createElement()函數來創建 <title> 元素:
var x=document.createElement("TITLE");
Title 對象屬性
屬性 | Description |
---|---|
text | 設置或返回文檔的title元素文本信息 |
標準屬性和事件
Title 對象支持標準 屬性 和 事件。
如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!
*請認真填寫需求信息,我們會在24小時內與您取得聯系。