最後更新日期 2023/9/14
你會需要
1. 一台MAC,本文用MAC環境做範例,理論上可以運用在Windows,但就不再補充注意事項。
2. ChatGPT帳號。
3. 會寫簡單網頁以及程式語言基礎。
適合的人
1. 會寫程式或網頁,但沒用過Python。
2. 對於ChatGPT如何運用在寫程式沒概念。
預計
1. 按部就班能有明確的學習目標以及成長。
2. 學會讓ChatGPT幫你寫一個爬蟲抓取網頁的資料到你像要的地方,譬如Excel。
3. 提供 範例檔案在Github。
先提供一段程式碼,如果有程式概念的人,或許看到這裡就瞭解了,可以跳過下列的說明
import requests
from bs4 import BeautifulSoup
import re
# 指定網址
url = 'https://rate.bot.com.tw/gold?Lang=zh-TW'
response = requests.get(url)
html = response.text
soup = BeautifulSoup(html, 'html.parser')
# 找到掛牌時間
time_div = soup.find('div', class_='pull-left trailer text-info')
time_text = time_div.text.strip().split(':')[1].strip()
print(f'掛牌時間:{time_text}')
# 找到黃金價格資料表格
pattern = re.compile('黃金牌價')
table = soup.find('table', {'title': pattern})
if table is None:
print('找不到符合條件的表格')
else:
# 定義要找的資料標題
titles = ['買進', '賣出']
data_values = []
for title in titles:
pattern = re.compile(title)
data_row = table.find('td', string=pattern)
if data_row is None:
print('找不到符合條件的資料')
else:
next_td = data_row.find_next('td')
value = next_td.get_text(strip=True)
data_values.append(value)
print(f'{title}: {value}')
- 此範例在做什麼
- 去台灣銀行網站,取得當下的金價,然後做其他應用,這裡示範列印在螢幕上。
- 此範例要如何執行
- 如下圖,在所有可以執行Python的地方執行,這裡示範用MAC Terminal執行。
- 此範例是如何產生的
- 使用ChatGPT網站,要求產生一段代碼,描述越詳細得到結果越精準。
- 不過也不用太擔心,根據測試的結果,你可以無限次糾正你的錯誤。
- 還是會需要部分程式或網頁開發基礎,無法提供此方法給完全零基礎的人。
- 為什麼選Python
- 直譯式語言,不需要編譯,方便好懂。
- 網路上提供很多現成的解決方案,譬如pandas,opencv,selenium,還有很多。
- 一般爬蟲實務
- 從網頁撈取現成的資料,有一種可以直接從源碼取得,不需要模擬器,譬如此範例。
- 有些需要透過模擬器才能取得,很多都是,最簡單就是直接試。
- DOM結構不需要完全理解,但要懂的搜尋,不然很容易卡住。
- 上面三句你聽不懂,建議你先不用此方法,此方法暫時不適合你。
- 進階會在提供,待續
- faulfish/faulfish: sample (github.com)
- 示範使用selenium,使用模擬器的方法爬蟲。以因應更多網頁,大部分網頁都需要。
- 示範使用pandas,抓到的資料進一步處理放在Excel。
- 結合ChatGPT API做語意以及其他複雜應用。
- 結合網站顯示抓到的資料,擴大應用範圍。
- 示範使用opencv,判斷籃球場上籃球的位置。
參考
1. GhatGPT API API keys - OpenAI API
沒有留言:
發佈留言