使用 Python 抓取 Google 搜尋結果
Google 為企業和研究人員提供了大量數據。它每天執行超過 85 億次搜索,佔據全球搜尋引擎市場 91% 的份額。
自 ChatGPT 首次亮相以來,Google 資料不僅用於排名追蹤、競爭對手監控和潛在客戶開發等傳統目的,還用於開發高級 LLM 模型、訓練 AI 模型和增強自然語言處理能力( NLP)模型。
然而,對每個人來說,抓取 Google 並不容易。它需要專業團隊和強大的基礎設施來進行大規模抓取。
在本文中,我們將學習使用 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 對其進行改進並獲取所需的資訊。
但是這裡的「所需資訊」是什麼?
過濾後的資料將包含以下資訊:
- 標題
- 連結
- 顯示的連結
- 描述
- 結果的位置
讓我們先在 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 位置中可以找到哪些常見模式。
因此,經過檢查我們發現每個搜尋結果都位於類別為 g 的 div 容器下。這意味著,我們只需使用 g 類別在每個 div 容器上運行一個循環即可獲取其中的資訊。
在編寫程式碼之前,我們將從 HTML 中找到標題、描述和連結的 DOM 位置。
如果您檢查標題,您會發現它包含在 h3 標籤內。從圖像中,我們也可以看到該連結位於錨標記的 href 屬性中。
顯示的連結或引用連結可以在引用標籤內找到。
最後,描述儲存在類別 VwiC3b 的 div 容器內。
將所有這些資料實體包裝到單一程式碼區塊中:
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 憑證
啟動帳戶後,您將被重定向到儀表板,您將在其中取得 API 金鑰。
您也可以從儀表板本身複製程式碼。
設定我們的程式碼以抓取搜尋結果
然後,我們將在隨機查詢上建立 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中文網其他相關文章!

在Python中實現工廠模式可以通過創建一個統一的接口來創建不同類型的對象。具體步驟如下:1.定義一個基礎類和多個繼承類,如Vehicle、Car、Plane和Train。 2.創建一個工廠類VehicleFactory,使用create_vehicle方法根據類型參數返回相應的對象實例。 3.通過工廠類實例化對象,如my_car=factory.create_vehicle("car","Tesla")。這種模式提高了代碼的可擴展性和可維護性,但需注意其複雜

在Python中,r或R前綴用於定義原始字符串,忽略所有轉義字符,讓字符串按字面意思解釋。 1)適用於處理正則表達式和文件路徑,避免轉義字符誤解。 2)不適用於需要保留轉義字符的情況,如換行符。使用時需謹慎檢查,以防意外的輸出。

在Python中,__del__方法是對象的析構函數,用於清理資源。 1)不確定的執行時間:依賴垃圾回收機制。 2)循環引用:可能導致無法及時調用,使用weakref模塊處理。 3)異常處理:在__del__中拋出的異常可能被忽略,使用try-except塊捕獲。 4)資源管理的最佳實踐:推薦使用with語句和上下文管理器管理資源。

pop()函數在Python中用於從列表中移除並返回指定位置的元素。 1)不指定索引時,pop()默認移除並返回列表的最後一個元素。 2)指定索引時,pop()移除並返回該索引位置的元素。 3)使用時需注意索引錯誤、性能問題、替代方法和列表的可變性。

Python進行圖像處理主要使用Pillow和OpenCV兩大庫。 Pillow適合簡單圖像處理,如加水印,代碼簡潔易用;OpenCV適用於復雜圖像處理和計算機視覺,如邊緣檢測,性能優越但需注意內存管理。

在Python中實現PCA可以通過手動編寫代碼或使用scikit-learn庫。手動實現PCA包括以下步驟:1)中心化數據,2)計算協方差矩陣,3)計算特徵值和特徵向量,4)排序並選擇主成分,5)投影數據到新空間。手動實現有助於深入理解算法,但scikit-learn提供更便捷的功能。

在Python中計算對數是一件非常簡單卻又充滿趣味的事情。讓我們從最基本的問題開始:怎樣用Python計算對數?用Python計算對數的基本方法Python的math模塊提供了計算對數的函數。讓我們來看一個簡單的例子:importmath#計算自然對數(底數為e)x=10natural_log=math.log(x)print(f"自然對數log({x})={natural_log}")#計算以10為底的對數log_base_10=math.log10(x)pri

要在Python中實現線性回歸,我們可以從多個角度出發。這不僅僅是一個簡單的函數調用,而是涉及到統計學、數學優化和機器學習的綜合應用。讓我們深入探討一下這個過程。在Python中實現線性回歸最常見的方法是使用scikit-learn庫,它提供了簡便且高效的工具。然而,如果我們想要更深入地理解線性回歸的原理和實現細節,我們也可以從頭開始編寫自己的線性回歸算法。使用scikit-learn實現線性回歸scikit-learn庫封裝了線性回歸的實現,使得我們可以輕鬆地進行建模和預測。下面是一個使用sc


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

記事本++7.3.1
好用且免費的程式碼編輯器

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。