「免費學習 60+ 節公開課:投票頁面,點擊講師頭像」
作者 | linksc
來源 | CSDN(ID:CSDNnews)
自從2011年 Google Web Search API 被棄用以來,我一直在尋找其他的方法來抓取Google。我需要一種方法,讓我的 Python 腳本從 Google 搜索中獲取鏈接。於是,我自己想出了一種方法,而本文正是通過 requests 和 Beautiful Soup 抓取 Google 搜索的快速指南。
首先,讓我們來安裝一些依賴項。請將以下內容保存成文本文件 requirements.txt:
requests
bs4
接下來,運行 pip install -r requirements.txt 命令來安裝依賴項。然後將其導入到你的腳本中。
import urllib
import requests
from bs4 import BeautifulSoup
為了執行搜索,你需要在URL中為 Google 提供查詢參數。此外,所有空格都必須用+代替。為了構建URL,我們需要設置正確的查詢格式,並其放入q參數中。
query = "hackernoon How To Scrape Google With Python"
query = query.replace(' ', '+')
URL = f"https://google.com/search?q={query}"
Google 會針對移動設備和臺式機返回不同的搜索結果。因此,我們需要指定適當的用戶代理。
# desktop user-agent
USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:65.0) Gecko/20100101 Firefox/65.0"
# mobile user-agent
MOBILE_USER_AGENT = "Mozilla/5.0 (Linux; Android 7.0; SM-G930V Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.125 Mobile Safari/537.36"
發送請求很簡單。但是,requests需要將 user-agent 放在請求的頭部。為了設置正確的頭部,我們必須傳給headers一個字典。
headers = {"user-agent" : MOBILE_USER_AGENT}
resp = requests.get(URL, headers=headers)
接下來,我們需要檢查請求是否成功。最簡單的方法是檢查狀態碼。如果返回200,則表示成功。然後,我們需要將其放入 Beautiful Soup 中以解析內容。
if resp.status_code == 200:
soup = BeautifulSoup(resp.content, "html.parser")
接下來是解析數據,並從頁面提取所有的鏈接。我們可以利用 Beautiful Soup 簡單地完成這項工作。在便利每個鏈接時,我們需要將結果存儲到一個列表中。
results =
for g in soup.find_all('div', class_='r'):
anchors = g.find_all('a')
if anchors:
link = anchors[0]['href']
title = g.find('h3').text
item = {
"title": title,
"link": link
}
results.append(item)
print(results)
這樣就可以了。這個腳本非常簡單,而且容易出錯。但至少它能帶你入門,從此你就可以編寫自己的 Google 爬蟲了。你可以從 GitHub上下載整個腳本,地址是:
https://github.com/getlinksc/scrape_google
原文鏈接:
https://hackernoon.com/how-to-scrape-google-with-python-bo7d2tal
(*本文為AI科技大本營轉載文章,轉載請聯繫作者)
所有CSDN 用戶都可參與投票和抽獎活動
加入福利群,每週還有精選學習資料、技術圖書等福利發送
閱讀更多 AI科技大本營 的文章