首頁 >後端開發 >Python教學 >使用 Python 抓取 Google 搜尋結果

使用 Python 抓取 Google 搜尋結果

Patricia Arquette
Patricia Arquette原創
2025-01-01 00:50:09959瀏覽

使用 Python 抓取 Google 搜尋結果

Google 為企業和研究人員提供了大量數據。它每天執行超過 85 億次搜索,佔據全球搜尋引擎市場 91% 的份額。

自 ChatGPT 首次亮相以來,Google 資料不僅用於排名追蹤、競爭對手監控和潛在客戶開發等傳統目的,還用於開發高級 LLM 模型、訓練 AI 模型和增強自然語言處理能力( NLP)模型。

然而,對每個人來說,抓取 Google 並不容易。它需要專業團隊和強大的基礎設施來進行大規模抓取。

Scrape Google Search Results Using Python

在本文中,我們將學習使用 Python 和 BeautifulSoup 抓取 Google 搜尋結果。這將使您能夠建立自己的工具和模型,能夠大規模利用 Google 的資料。

讓我們開始吧!

什麼是 Google 搜尋結果?

Google 搜尋結果是根據在搜尋欄中輸入的使用者查詢顯示在 Google 上的清單。 Google 大量利用 NLP 來理解這些查詢並向使用者提供相關結果。除了自然結果之外,這些結果通常還包括特色片段,例如最新的人工智慧概述、「人們也問」部分、相關搜尋和知識圖。這些元素根據使用者的查詢向使用者提供匯總的相關資訊。

抓取 Google 搜尋資料的應用

Google 搜尋資料有多種應用:

  • 建立用於 SEO 目的的排名和關鍵字追蹤器。
  • 搜尋本地企業。
  • 建造 LLM 引擎。
  • 發現未來潛在趨勢的爆炸性話題。

為什麼要用 Python 來抓取 Google 資料?

Python 是一種多功能且強大的語言,它為抓取網站提供了強大的 HTTP 握手配置,而其他語言可能會遇到困難或成功率較低。隨著基於網路抓取資料訓練的人工智慧模型越來越受歡迎,Python 在網路抓取主題中的相關性在開發者社群中不斷上升。

此外,由於其語法簡單且程式碼清晰,希望學習 Python 作為網頁抓取技能的初學者可以輕鬆理解它。另外,它在 Discord、Reddit 等平台上擁有巨大的社群支持,可以幫助解決您面臨的任何程度的問題。

這種可擴展的語言在網頁抓取效能方面表現出色,並提供了強大的框架,如Scrapy、Requests 和BeautifulSoup,與其他語言相比,使其成為抓取Google 和其他網站的絕佳選擇。

使用 Python 抓取 Google 搜尋結果

本節將教我們建立一個基本的 Python 腳本來檢索前 10 個 Google 搜尋結果。

要求

要學習本教程,我們需要安裝以下程式庫:

  • 請求 - 從 Google 搜尋網址擷取 HTML 資料。

  • BeautifulSoup — 以結構化格式最佳化 HTML 資料。

設定

設定很簡單。建立一個 Python 檔案並安裝所需的程式庫以開始使用。

在專案資料夾中執行以下命令:

    touch scraper.py

然後安裝庫。

    pip install requests
    pip install beautifulsoup4

流程

我們已經完成設定並準備好繼續前進的所有東西。我們將使用 Python 中的 Requests 庫提取原始 HTML,並使用 BeautifulSoup 對其進行改進並獲取所需的資訊。

但是這裡的「所需資訊」是什麼?

Scrape Google Search Results Using Python

過濾後的資料將包含以下資訊:

  • 標題
  • 連結
  • 顯示的連結
  • 描述
  • 結果的位置

讓我們先在 scraper.py 檔案中匯入已安裝的程式庫。

    from bs4 import BeautifulSoup
    import requests

然後,我們將對目標 URL 發出 GET 請求,以從 Google 取得原始 HTML 資料。

headers={'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.361681276786'}
    url='https://www.google.com/search?q=python+tutorials&gl=us'
    response = requests.get(url,headers=headers)
    print(response.status_code)

傳遞標頭對於讓抓取工具看起來像一個剛剛訪問 Google 搜尋頁面以獲取某些資訊的自然用戶非常重要。

上面的程式碼將幫助您從 Google 搜尋連結中提取 HTML 資料。如果收到 200 狀態碼,則表示請求成功。這就完成了為 Google 建立抓取工具的第一部分。

在下一部分中,我們將使用 BeautifulSoup 從 HTML 中取得所需的資料。

    soup = BeautifulSoup(response.text, ‘html.parser’)

這將建立一個 BS4 物件來解析 HTML 回應,因此我們將能夠輕鬆地在 HTML 中導航並找到任何選擇的元素及其內部的內容。

要解析此 HTML,我們需要先檢查 Google 搜尋頁面,以檢查在搜尋結果的 DOM 位置中可以找到哪些常見模式。

Scrape Google Search Results Using Python

因此,經過檢查我們發現每個搜尋結果都位於類別為 g 的 div 容器下。這意味著,我們只需使用 g 類別在每個 div 容器上運行一個循環即可獲取其中的資訊。

在編寫程式碼之前,我們將從 HTML 中找到標題、描述和連結的 DOM 位置。

如果您檢查標題,您會發現它包含在 h3 標籤內。從圖像中,我們也可以看到該連結位於錨標記的 href 屬性中。

Scrape Google Search Results Using Python

顯示的連結或引用連結可以在引用標籤內找到。

Scrape Google Search Results Using Python

最後,描述儲存在類別 VwiC3b 的 div 容器內。

Scrape Google Search Results Using Python

將所有這些資料實體包裝到單一程式碼區塊中:

    touch scraper.py

我們聲明了一個有機結果數組,然後循環遍歷 HTML 中具有 g 類的所有元素,並將收集到的資料推送到數組中。

運行此程式碼將為您提供所需的結果,您可以將其用於各種目的,包括排名追蹤、潛在客戶生成和優化網站的 SEO。

    pip install requests
    pip install beautifulsoup4

這就是建立基本 Google 抓取腳本的方式。

但是,有一個問題。我們仍然無法完全依賴這種方法,因為這可能會導致我們的 IP 被 Google 封鎖。如果我們想大規模抓取搜尋結果,我們需要一個由優質和非優質代理商組成的龐大網路以及先進的技術來實現這一目標。這就是 SERP API 發揮作用的地方!

使用 ApiForSeo 的 SERP API 抓取 Google 訊息

另一種抓取 Google 的方法是使用專用的 SERP API。它們更加可靠,不會讓您在抓取過程中受阻。

這部分的設定是相同的,只是我們需要在 ApiForSeo 上註冊以取得我們的 API 金鑰,這將使我們能夠存取其 SERP API。

從 ApiForSeo 取得 API 憑證

Scrape Google Search Results Using Python

啟動帳戶後,您將被重定向到儀表板,您將在其中取得 API 金鑰。

Scrape Google Search Results Using Python

您也可以從儀表板本身複製程式碼。

設定我們的程式碼以抓取搜尋結果

然後,我們將在隨機查詢上建立 API 請求,以透過 ApiForSeo SERP API 抓取資料。

    from bs4 import BeautifulSoup
    import requests

您也可以嘗試任何其他查詢。不要忘記將您的 API 金鑰放入程式碼中,否則您將收到 404 錯誤。

在終端機中執行此程式碼將立即給出結果。

    touch scraper.py

上述資料包含各種點,包括標題、連結、片段、描述和擴充附加連結等特色片段。您還可以從此 API 獲得高級功能片段,例如 People Also Ask For、知識圖譜、答案框等。

結論

商業的本質正在快速發展。如果您無法取得有關當前趨勢和競爭對手的數據,您就有可能落後於每一步都制定數據驅動策略決策的新興企業。因此,對於企業來說,了解其環境中發生的情況至關重要,而 Google 可以成為實現此目的的最佳資料來源之一。

在本教學中,我們學習如何使用 Python 抓取 Google 搜尋結果。如果您覺得本部落格有幫助,請在社群媒體和其他平台上分享。

謝謝!

以上是使用 Python 抓取 Google 搜尋結果的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn