今天在 "ChatGPT 4 開發手冊" 這本書上讀到 googlesearch-python 這個谷歌搜尋引擎爬蟲套件的介紹, 主要用在應用程式詢問大語言模型的主題超出其時空限制時, 可利用此套件去查詢谷歌取得最新資料.
首先用 pip 安裝 googlesearch-python 套件 :
pip install googlesearch-python
在 Colab 安裝前面要加驚嘆號 :
!pip install googlesearch-python
D:\>pip install googlesearch-python
Collecting googlesearch-python
Downloading googlesearch_python-1.2.5-py3-none-any.whl.metadata (2.9 kB)
Requirement already satisfied: beautifulsoup4>=4.9 in c:\users\tony1\appdata\local\programs\thonny\lib\site-packages (from googlesearch-python) (4.12.3)
Requirement already satisfied: requests>=2.20 in c:\users\tony1\appdata\roaming\python\python310\site-packages (from googlesearch-python) (2.31.0)
Requirement already satisfied: soupsieve>1.2 in c:\users\tony1\appdata\roaming\python\python310\site-packages (from beautifulsoup4>=4.9->googlesearch-python) (2.4.1)
Requirement already satisfied: charset-normalizer<4,>=2 in c:\users\tony1\appdata\roaming\python\python310\site-packages (from requests>=2.20->googlesearch-python) (3.2.0)
Requirement already satisfied: idna<4,>=2.5 in c:\users\tony1\appdata\roaming\python\python310\site-packages (from requests>=2.20->googlesearch-python) (3.4)
Requirement already satisfied: urllib3<3,>=1.21.1 in c:\users\tony1\appdata\local\programs\thonny\lib\site-packages (from requests>=2.20->googlesearch-python) (1.26.19)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\tony1\appdata\roaming\python\python310\site-packages (from requests>=2.20->googlesearch-python) (2023.7.22)
Downloading googlesearch_python-1.2.5-py3-none-any.whl (4.8 kB)
Installing collected packages: googlesearch-python
Successfully installed googlesearch-python-1.2.5
此處安裝的是 1.2.5 版, 書上說 1.2.3 版有個小 bug, 爬回來的資料會比指定筆數多兩筆, 這問題在新版應該已經解決了.
雖然安裝的名稱是 googlesearch-python, 但使用時的套件名稱只要用 googlesearch 即可, 首先匯入整個套件, 用 dir() 檢視其內容 :
>>> import googlesearch
>>> dir(googlesearch)
['BeautifulSoup', 'SearchResult', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', '_req', 'get', 'get_useragent', 'search', 'sleep', 'user_agents']
可見此套件使用 BeautifulSoup 來解析網頁. 它使用的 User-Agent 可呼叫 get_useragent() 查詢 :
>>> googlesearch.get_useragent()
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36'
使用此套件主要是透過呼叫 search() 函式並傳入要搜尋的關鍵字, 它會傳回一個生成器 (generator), 可以用迴圈列印出其網址 :
>>> from googlesearch import search
>>> type(search)
<class 'function'>
search() 的傳入參數如下表 :
search() 的參數 | 說明 |
query | 查詢的字詞 (必要參數) |
num_results | 傳回搜尋結果的筆數 (預設 10 筆) |
advanced | 是否開啟進階模式 (傳回物件), 預設 False |
language | 指定搜尋結果的 ISO639-1 語言代碼 (預設 'en' 英文), 繁體中文為 'zh-tw' |
proxy | 指定代理伺服器網址 |
search() 函式會傳回一個搜尋結果的生成器 :
>>> items=search('小狐狸事務所')
>>> type(items)
<class 'generator'>
可用迴圈遍歷每一個搜尋結果, 預設一般模式會傳回 10 個搜尋結果的網址 (字串) :
>>> for item in items:
print(item)
http://yhhuang1966.blogspot.com/
http://yhhuang1966.blogspot.com/
https://www.instagram.com/huli_market/
https://tony1966.github.io/
https://www.blogger.com/profile/09435160519044041137
https://www.surveycake.com/s/WgZav
https://world.taobao.com/dianpu/114691087.htm
https://www.ruten.com.tw/item/show?22346154976481=&srsltid=AfmBOopVt_JXikBUIMbDCob7UKiSPfO8tWjWszgG7x0P6PXtv2dLZMIe
https://www.facebook.com/photo.php?fbid=2636368466439445&id=2194109117332051&set=a.2273434692732826
https://www.threads.net/@pottery_flower/post/C9SRI6fPNG2?hl=zh-tw
傳入 advanced=True 指定進階模式則會傳回 SearchResult 物件的生成器 :
>>> items=search('小狐狸事務所', advanced=True)
>>> type(items)
<class 'generator'>
>>> for item in items:
print(item)
SearchResult(url=http://yhhuang1966.blogspot.com/, title=小狐狸事務所, description=小狐狸的生活紀錄,上班族心情記事,JavaScript,Python,PHP,HTML5,Autoit,C,WSH,ASP 等學習心得筆記,社會與政治評論等等。)
SearchResult(url=http://yhhuang1966.blogspot.com/, title=小狐狸事務所, description=小狐狸的生活紀錄,上班族心情記事,JavaScript,Python,PHP,HTML5,Autoit,C,WSH,ASP 等學習心得筆記,社會與政治評論等等。)
SearchResult(url=https://www.instagram.com/huli_market/, title=小狐狸市務所(@huli_market), description=【小狐狸市務所- 彰化卦山村】 日期: 6/22~6/25 & 7/8~7/9 時間: 13:00~18:00 地址: 彰化縣彰化市卦山路8-1號2F 合作單位: 彰化縣創藝美育協會市集報名連結: https://reurl ...)
SearchResult(url=https://tony1966.github.io/, title=小狐狸事務所の網路實驗室, description=Hi, 歡迎拜訪"小狐狸事務所の網頁實驗室" ! 此網站匯集我在探索各種網頁技術時所撰寫的測試程式, 程式的詳細說明紀錄在個人部落格"小狐狸事務所", 您可任意參考與複製 ...)
SearchResult(url=https://www.blogger.com/profile/09435160519044041137, title=小狐狸事務所- User Profile, description=熱愛自由不想被拘束, 無法忍受無聊而不斷學習的射手座, 因為記性不好必須在部落格紀錄思考學習與生活點滴的平凡上班族.)
SearchResult(url=https://www.surveycake.com/s/WgZav, title=小狐狸市務所- 11.12月敦化SOGO, description=【市集日期&時間】11/9(六)-11/10(日) > 週年慶12/14(六)-12/15(日) > 聖誕黨市集時間: 11:00~19:00【市集地點】敦化SOGO百貨正門口【收費標準】場租: 1200元/天租 ...)
SearchResult(url=https://world.taobao.com/dianpu/114691087.htm, title=狐狸事務所- 淘寶網|Taobao, description=歡迎光臨-狐狸事務所,淘寶網Taobao爲你提供最新商品圖片、價格、品牌、評價、折扣等信息,有問題可直接諮詢商家!淘寶數億熱銷好貨,官方物流可寄送至全球十地, ...)
SearchResult(url=https://www.instagram.com/huli_market/p/CrqWwNDrmhu/, title=小狐狸市務所| 大家最近還好嗎? 小 ..., description=下週開始即將開啟6、7月的報名規劃場次如下 6/22-6/25 (端午連假) -彰化卦山村 7/1-7/2 天母SOGO 7/8-7/9 天母SOGO+ 彰化卦山村 還請大家密切注意我們的 ...)
SearchResult(url=https://www.ruten.com.tw/item/show?22346154976481=&srsltid=AfmBOopRu51UoqOxEZHt8E0zxjKeNnWueZHLV6Cs2hLBLddYoIS_0k9q, title=【怨念事務所】現貨GSC 黏土人FLUFFY LAND 小狐狸River ..., description=品牌旗艦【怨念事務所】現貨GSC 黏土人FLUFFY LAND 小狐狸River 再版 · 優惠活動 · 預計出貨4~7天(2024/10/24 ~ 2024/10/27) · 運送NT$ 0 - NT$ 100合併運費規則 · 付款.)
SearchResult(url=https://www.threads.net/@pottery_flower/post/C9SRI6fPNG2?hl=zh-tw, title=米洛酷市集&小狐狸事務所台北室內-捷運大安森林公園, description=Jul 11, 2024 — 陶花巷弄民宿x工作室(@pottery_flower). 19 Likes. ➺➤米洛酷市集&小狐狸事務所台北室內-捷運大安森林公園-陽光大廳2024.6.8-9 ➤此為室內市集, ...)
可見 SearchResult 物件有 url, title, 與 description 三個屬性. 可以傳入 num_results 參數指定搜尋筆數 :
>>> items=search('小狐狸事務所', advanced=True, num_results=3)
>>> for item in items:
print(item.title)
print(item.description)
print(item.url)
print()
小狐狸事務所
小狐狸的生活紀錄,上班族心情記事,JavaScript,Python,PHP,HTML5,Autoit,C,WSH,ASP 等學習心得筆記,社會與政治評論等等。
http://yhhuang1966.blogspot.com/
小狐狸事務所
小狐狸的生活紀錄,上班族心情記事,JavaScript,Python,PHP,HTML5,Autoit,C,WSH,ASP 等學習心得筆記,社會與政治評論等等。
http://yhhuang1966.blogspot.com/
小狐狸市務所(@huli_market)
【小狐狸市務所- 彰化卦山村】 日期: 6/22~6/25 & 7/8~7/9 時間: 13:00~18:00 地址: 彰化縣彰化市卦山路8-1號2F 合作單位: 彰化縣創藝美育協會市集報名連結: https://reurl ...
https://www.instagram.com/huli_market/
沒有留言:
張貼留言