在線Python爬蟲進行數據緩存的方法有很多種,這里我為您提供一個簡單的示例,使用requests
庫和pickle
庫來實現數據緩存。
首先,確保已經安裝了requests
庫,如果沒有安裝,可以使用以下命令安裝:
pip install requests
接下來,創建一個名為cache.py
的文件,并在其中編寫以下代碼:
import requests
import pickle
import time
CACHE_FILE = 'cache.pkl'
def save_cache(data):
with open(CACHE_FILE, 'wb') as f:
pickle.dump(data, f)
def load_cache():
try:
with open(CACHE_FILE, 'rb') as f:
return pickle.load(f)
except FileNotFoundError:
return None
def fetch_data(url):
cache = load_cache()
if cache and cache['url'] == url and time.time() - cache['timestamp'] < cache['expires']:
print("從緩存中獲取數據")
return cache['data']
print("從URL獲取數據")
response = requests.get(url)
data = response.json() # 根據實際數據結構進行修改
expires = time.time() + 3600 # 設置緩存過期時間,單位為秒
save_cache({'url': url, 'data': data, 'timestamp': expires})
return data
在這個示例中,我們定義了三個函數:
save_cache(data)
:將數據保存到緩存文件中。load_cache()
:從緩存文件中加載數據。fetch_data(url)
:從給定的URL獲取數據,如果緩存中存在且未過期,則從緩存中獲取數據,否則從URL獲取數據并更新緩存。現在,您可以在其他Python腳本中使用fetch_data
函數來爬取數據并緩存結果。例如:
from cache import fetch_data
url = "https://api.example.com/data"
data = fetch_data(url)
print(data)
這樣,您就可以在在線Python爬蟲中進行數據緩存了。請注意,這個示例僅用于演示目的,實際應用中可能需要根據您的需求進行調整。