Günümüzde bilgi olağanüstü hızlarda yayılıyor ve birçok dosya Google Docs'ta saklanıyor. Dolayısıyla, gerçekten de Google Docs veri kazıma, çok fazla zaman ve emek tasarrufu yapmanın harika bir yoludur.
Bu makalede, süreci otomatikleştirmeye yardımcı olan yöntemleri inceleyeceğiz. Google dokümanlarını kazımak ve bu dosyaları yaygın bir veri depolama biçimi olan JSON biçiminde kaydetmek için Python kullanacağız.
Kamu belgelerinde depolanan verilerin otomatik olarak alınması çeşitli nedenlerle kullanılabilir. Herhangi bir manuel müdahale olmadan bilgi toplamanın otomatikleştirilmesine yardımcı olur. Bu şunlar için çok kullanışlıdır:
Google Docs'u Python ile kazımak, bu tür dosyaların içeriğini analiz etmek için de kullanışlıdır. Bu, bu hizmeti daha sonra raporlar kullanılarak işlenen veya makine öğrenimi sistemlerini eğiten doğru ve derinlemesine bilgi almak için harika bir kaynak haline getirir.
Google Docs veri kazıma işlemini etkili bir şekilde gerçekleştirmek için Python'da bu görev için uygun araçları seçmeniz gerekir. Kütüphanelerden bazıları aşağıdaki gibidir:
Bu araçlar arasında seçim yapmak, amacınızın bir dosyayı okumak mı yoksa yapılandırılmış veriler üzerinde bir API çağrısı kullanarak gelişmiş etkileşimler mi gerçekleştirmek istediğinize bağlıdır.
Şimdi, çalışma ortamını nasıl kuracağımızı ve ana hatlarıyla belirtilen süreçleri nasıl tamamlayacağımızı incelememizi istiyorum.
Python'un yüklü olduğundan emin olun. Sonraki:
python -m venv myenv
myenv\Scripts\activate
source myenv/bin/activate
pip install requests beautifulsoup4 google-api-python-client gspread google-auth
İlgili dosyayı açın. Belge kamu tarafından yetkilendirilmiş olmalıdır. Aşağıdaki adımları takip ediniz:
Bu olmadan, komut dosyalarınız erişim hataları döndürecektir.
Bir belge yayınlanır yayınlanmaz, URL'si aşağıdaki biçimi alır:
https://docs.google.com/document/d/1AbCdEfGhIjKlMnOpQrStUvWxYz/view
1AbCdEfGhIjKlMnOpQrStUvWxYz - dosya kimliği. API veya HTML kazıma kullanarak belgeye bu şekilde erişeceksiniz.
İşte bu tür dokümanlardan bilgi çıkarmak için iki temel yaklaşım:
Daha az karmaşık durumlar için HTML yeterli olurken, daha karmaşık durumlarda API'ler gereklidir.
Bir dosya web sayfası olarak yayınlandığında, HTML'sini almak ve ardından ilgili bilgileri almak için ayrıştırmak mümkündür:
import requests
from bs4 import BeautifulSoup
url = 'https://docs.google.com/document/d/YOUR_ID/pub'
response = requests.get(url)
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
# Sayfadaki tüm metni ayıklayın
text = soup.get_text()
print(text)
else:
print(f'Access error: {response.status_code}')
İşte çalışan algoritma:
İhtiyaç duyulan bilgiler konusunda daha fazla hassasiyet gerekiyorsa, en uygun araç, şirket tarafından yayınlanan işleyiciler ve belgeler aracılığıyla, dolayısıyla Google Docs API'sini kullanmaktır.
Başlatıcı adımlar:
Şuna benziyor:
from google.oauth2 import service_account
from googleapiclient.discovery import build
# Hizmet hesabı JSON dosyanızın yolu
SERVICE_ACCOUNT_FILE = 'path/to/your/service_account.json'
# Belge kimliğiniz
DOCUMENT_ID = 'YOUR_ID'
# Erişim yapılandırması
credentials = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE,
scopes=['https://www.googleapis.com/tr/auth/documents.readonly']
)
service = build('docs', 'v1', credentials=credentials)
# Belgenin içeriğini alma
document = service.documents().get(documentId=DOCUMENT_ID).execute()
# Belge başlığını yazdırma
print('Document title: {}'.format(document.get('title')))
Veri elde ettiğinizde, daha sonra geri alınabilmesi için etkin bir şekilde saklanması gerekir.
JSON'a kaydedin:
import json
# Çıkarılmış içeriğe sahip bir `data` değişkeniniz olduğunu varsayarsak
with open('output.json', 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=4)
Daha sonra, verileri gereksinimlerinize göre analiz edebilir veya değiştirebilirsiniz.
Otomatik güncellemeleri ayarlamak, komut dosyanızı kendiniz çalıştırmaktan daha iyi olacaktır.
Aşağıda bir otomasyon komut dosyası örneği verilmiştir:
import time
def main():
# Verileri ayıklamak ve kaydetmek için kodunuz
print("Data harvesting...")
# Her 6 saatte bir çalıştırın
while True:
main()
time.sleep(6 * 60 * 60)
Google Docs veri kazıma işlemi basit görünse de, belirli zorluklar şunlardır:
Sonuncusu ve kesinlikle en önemlisi etiktir:
Python kullanarak Google Docs veri kazıma konusunu derinlemesine inceledik. Projenizin karmaşıklık düzeyi, HTML kazıma yöntemini mi yoksa Google Docs API'sini mi seçeceğinizi belirleyecektir. Kamuya açık belgelerle uğraşırken dikkatli olmak ve web kazımanın yasal sonuçlarını göz önünde bulundurmak en iyisidir.
Bu tür bir kazıma, araştırma yapmak, değişiklikleri izlemek ve özel hizmetler geliştirmek gibi geniş olanaklar sağlar. Bu bilgilerle, Python kullanarak genel Google dokümanlarını kazıma işlemini sorunsuz bir şekilde otomatikleştirebilir ve yinelenen görevlerin otomasyonunu kolaylaştırabilirsiniz.
Yorumlar: 0