注意: 雖然 JavaScript 對於本網站不是必需的,但您與內容的互動將受到限制。請開啟 JavaScript 以獲得完整的體驗。

使用 Python 指令碼分析網站的 SEO 和死連結

Python 的核心理念是自動化重複性任務,從而為您在搜尋引擎最佳化 (SEO) 方面的其他工作節省更多時間。雖然 Python 可以為您節省大量時間和精力,但目前並沒有多少 SEO 從業者使用 Python 來解決問題。例如,Python 可用於以下任務:

  • 資料提取
  • 資料準備
  • 分析和視覺化
  • 機器學習
  • 深度學習

本文將主要關注資料提取和分析。每個指令碼所需的模組都將予以說明。

Python SEO 分析器

一個非常實用的網站分析指令碼叫做“SEO 分析器”。它是一個全能的網站爬蟲,可以分析以下資訊:

  • 字數統計
  • 頁面標題
  • Meta 描述
  • 頁面關鍵詞
  • 警告
  • 缺少標題
  • 缺少描述
  • 缺少圖片 alt 文字

這對於快速分析您網站的基本 SEO 問題非常有用。由於頁面標題、meta 描述和頁面關鍵詞是重要的排名因素,因此該指令碼非常適合清晰地瞭解可能存在的任何問題。

使用 SEO 分析器

在為該指令碼安裝了必要的模組 (BeautifulSoup 4 + urllib2) 並將 Python 更新到 3.4+ 版本後,您就可以技術上使用該指令碼了。然而,Json 或其工作變體對於匯出您從 SEO 分析器獲得的資料可能很有用。安裝指令碼後,您可以使用以下命令:

seoanalyze http://internetvergelijnk.nl/

seoanalyze https://telefoonvergelijk.nl --sitemap https://telefoonvergelijk.nl/sitemap_index.xml

如上述示例所示,對於 internetvergelijktelefoonvergelijk,都可以透過爬取網站或網站的 XML 站點地圖進行 SEO 分析。另一個選項是從分析中生成 HTML 輸出,而不是使用 json。這可以透過以下命令完成:

seoanalyze http://internetvergelijk.nl/ --output-format-html

如果您已經安裝了 json 並希望匯出資料,請使用以下命令:

from seoanalyzer import analyse output = analyse(site, sitemap) print(output)

您還可以選擇另一種方式,將分析作為指令碼執行,如下例所示:

執行 --output-format html 指令碼後,這將把檔案匯出為 html 格式。這個 seoanalyze 指令碼非常適合最佳化您的頁面標題、meta 描述、圖片和頁面關鍵詞。它也比 Screaming Frog 快得多,所以如果您只尋找這些資訊,執行 seoanalyze 指令碼會更高效。

連結狀態分析器

使用 Python 進行搜尋引擎最佳化的另一種方法是使用一個爬取您網站並分析您的 URL 狀態碼的指令碼。這個指令碼叫做 Pylinkvalidator,可以在這裡找到。如果您使用 Python 3.x 執行它,只需要 BeautifulSoup。如果您執行的是 2.x 版本,如 2.6 或 2.7,則不需要 BeautifulSoup。

然而,為了加快爬取速度,安裝以下庫可能會很有用:

1) lxml – 加快 HTML 頁面爬取速度(需要 C 語言庫) 1) gevent – 使 pylinkvalidator 能夠使用綠色執行緒 1) cchardet – 加快文件編碼檢測速度

請記住這一點,它們對於爬取大型網站以及僅僅增強連結狀態分析器可能非常有用。

這個指令碼的主要功能是爬取網站的整個 URL 結構,以分析每個 URL 的狀態碼。對於大型網站來說,這是一個非常漫長的過程,因此建議使用可選庫來加快速度。

使用連結狀態分析器

Pylinkvalidator 有大量的不同用法選項。例如,您可以:

  • 顯示進度
  • 爬取網站以及屬於其他主機的頁面
  • 只爬取單個頁面及其連結到的頁面
  • 只爬取連結,忽略其他(圖片、樣式表等)
  • 使用比預設更多的執行緒或程序爬取網站
  • 更改您的使用者代理
  • 爬取多個網站
  • 檢查 robots.txt
  • 爬取 body 標籤和 paragraph 標籤

建議透過 -P--progress 顯示進度,因為如果沒有它,您將不知道您的爬取何時完成,沒有任何視覺跡象。用於爬取更多執行緒(--workers='number of workers')和程序(--mode=process --workers='number of workers')的命令也非常有用。

當然,該指令碼還有許多其他選項可以探索。以下示例展示了一些可能的用法:

pylinkvalidate.py -p http://www.example.com/

上述功能爬取網站並顯示進度。

pylinkvalidate.py -p workers=4 http://www.example.com/

此功能以多執行緒方式爬取網站並顯示進度。

pylinkvalidate.py -p --parser=lxml http://www.example.com/

此功能使用 lxml 庫以加快爬取速度並顯示進度。

pylinkvalidate.py -P --types=a http://www.example.com/

上述功能只爬取您網站上的連結(<a href>),忽略圖片、指令碼、樣式表和您網站上的任何其他非連結屬性。這在爬取大型網站的 URL 時也是一個有用的功能。指令碼執行完畢後,您將獲得一個列表,其中包含透過爬取您的網站找到的 4xx 和 5xx 狀態碼的 URL。除此之外,您還將獲得一個連結到該頁面的 URL 列表,這樣您就可以更輕鬆地修復死連結。常規爬取不顯示任何 3xx 狀態碼。有關哪些頁面可以連結到您的頁面的更詳細資訊,請嘗試以下功能:

pylinkvalidate.py --report-type=all http://www.example.com/

這提供了關於頁面狀態碼以及所有其他連結到該頁面的頁面的資訊。

一個非常有用的 SEO 工具,您可以用它來爬取您的網站,查詢死連結 (404) 和伺服器錯誤。這兩種錯誤都可能對您的 SEO 工作不利,因此請務必定期爬取您自己的網站,以便儘快修復這些錯誤。

結論

儘管這些指令碼非常有用,但在 SEO 領域,Python 還有許多不同的用途。挑戰自己建立能夠提高 SEO 工作效率的指令碼。有很多 Python 指令碼可以讓您的生活更輕鬆。有用於檢查 hreflang 標籤、規範化標籤、robots.txt 等的指令碼。畢竟,在當今時代,當可以自動化時,誰還會手動完成任務呢?