Yeni nesil Webmaster Forumuna hoş geldin

Sen de aramıza katıl!

Üye ol

Google Instant Indexing Script - Python

WebCode

ekip
Katılım
13 Ağu 2024
Mesajlar
197
Tepkime puanı
35
Googlebot'un sitenizi taramasını, yeni veya yeni güncellenen sayfalarınızı keşfetmesini ve ardından bunları dizine eklemesini beklemeniz gereken günler (neredeyse) geride kaldı. İlk olarak 2018'de yayınlanan ve iş ilanı URL'leri için ayrılmış olan Google'ın Dizinleme API'si, site sahiplerinin sitelerine sayfa ekledikleri veya kaldırdıkları zaman Google'a doğrudan bildirimde bulunmalarını sağlar.

Dizinleme API'si şunlar için kullanılabilir:

  • Daha kaliteli kullanıcı trafiği için dizindeki URL'leri güncelleyin ve arama sonuçlarını güncel tutun.
  • Dizininizden eski veya gereksiz URL'leri kaldırın.
  • API'yi çağırma sayınızı azaltmak için toplu istekler gönderin.
Bildiğiniz üzere, Google, Indexing API QuickStart'ta site haritası yerine Indexing API'yi kullanmanızı öneriyor, çünkü API, site haritalarına kıyasla sayfayı güncelleme veya yeni bir sayfa yayınlama isteklerini daha hızlı alıyor.

Site Haritaları ve Dizinleme

Bu yazımızda, sitenizin URL dizin isteklerini toplu olarak Google'a göndermek ve Google'ın sayfalarınızı daha hızlı taramasını sağlamak için Python'da bir betiğin nasıl oluşturulacağına bakacağız.

Bonus olarak, bu betiği güncellediğiniz veya Google'dan kaldırmak istediğiniz sayfalar için istek göndermek amacıyla da kullanabilirsiniz.

İhtiyacımız olacak kütüphaneler​

Bu betiği Python'da oluşturmak için Google Colab'ı kullanacağız ve ayrıca aşağıdaki kütüphanelere de ihtiyacımız olacak:

  • oauth2istemci
  • GoogleApiİstemcisi
  • httplib2
  • JSON
  • Google Şirketi
  • SEN
Bu kütüphaneleri Google Colab'a yüklemek için aşağıdaki komutu kullanabilirsiniz:

!pip oauth2client'ı kurun
Veya, kütüphaneleri Windows'a kurmak istiyorsanız, 'Komut İstemi'ne veya macOS kullanıyorsanız 'Terminal'e aşağıdaki komutu girmeniz gerekecektir:

pip oauth2client'ı kurun

Kütüphaneleri kullanma​

Gerekli kütüphaneleri kurduktan sonra bunları kullanmak ve çağırmak için aşağıdaki kodları kullanmanız gerekecektir:

oauth2client.service_account'tan ServiceAccountCredentials'ı içe aktarın
googleapiclient.discovery'den yapıyı içe aktar
googleapiclient.http'den BatchHttpRequest'i içe aktarın
httplib2'yi içe aktar
json'u içe aktar
google.colab'dan dosyaları içe aktar
onları içe aktar

URL'leri hazırlama​

Sonra, Google'a düzenlemelerinizi, yeni sürümlerinizi ve silinen sayfalarınızı bildirebileceğiniz bir metin dosyasına URL'lerimizi kopyalamamız gerekir. Dizinleme API'sini kullanırken günde 100 veya daha az bağlantıyla sınırlı olduğunuzu unutmayın. Metin dosyası şu şekilde görünmelidir:

URL Not Defteri

Google Colab'da, URL'lerinizin karşılık gelen metin dosyasını yüklemek ve çağırmak için aşağıdaki kodu kullanabilirsiniz:

yüklenen_dosya = dosyalar.yükle ( )
Bundan sonra bir sözlük oluşturmamız ve istek göndermek için URL'leri hazırlamamız gerekiyor. Bunu aşağıdaki kodu kullanarak yapabiliriz:

liste= []
yüklenen_dosyadaki dosya_adı için.keys ( ) :
satırlar = yüklenen_dosya [ dosya_adı ] . splitlines ()
satır içi satırlar için :
liste.ekle ( satır.kod çöz ( ' utf -8' ))

istekler = {}
i listesindeki için :
istekler [ i ] = "URL_GÜNCELLENDİ"
yazdır ( istekler )
Kodda, yeni içerik güncellemek veya yayınlamak için gerekli sözlüğün oluşturulacağını belirtmek gerekir. URL'leri kaldırmanız gerekirse, basitçe şunu kullanabilirsiniz:

URL_SİLİNDİ
yerine komut
URL_GÜNCELLENDİ
.

Dizinleme API'sini oluşturma ve etkinleştirme​

API'yi oluşturmak ve etkinleştirmek için Google Developer Console'a gitmeniz , ardından 'Bir proje seç'e tıklamanız ve yeni bir proje oluşturmak için 'Yeni proje' seçeneğini kullanmanız gerekecektir.

Google Cloud_Dizinleme API'sini oluşturma ve etkinleştirme adım 1



Google Cloud_Dizinleme API'sini oluşturma ve etkinleştirme adım 2

Daha sonra projeniz için bir isim seçmeniz ve 'Oluştur'u seçmeniz gerekecektir.

Google Cloud_Dizinleme API'sini oluşturma ve etkinleştirme adım 3

Projeyi oluşturduktan sonra menünün proje kısmından projeyi seçmeniz, ardından sol menüden IAM & ADMIN'i seçmeniz ve son olarak 'Hizmet Hesapları'nı seçmeniz gerekecektir.

Google Cloud_Dizinleme API'sini oluşturma ve etkinleştirme adım 4

Bu adımdan sonra, 'Hizmet hesabı oluştur'a tıklayın ve hesabınızı oluşturmaya devam edin. İlk bölümde, hesabınız için bir ad seçin ve ardından 'Oluştur ve devam et'e tıklayın. Tamamlandığında, ikinci adıma geçebilirsiniz.

'Bu hizmet hesabına projeye erişim izni ver' bölümünde, hesabınız için bir rol seçin ve Hızlı erişim menüsünden 'Sahip'i, ardından 'Temel' bölümünü seçtiğinizden emin olun. Ardından 'Devam'a tıklayın ve bir sonraki adımda hiçbir şeyi değiştirmenize gerek kalmayacak, sadece 'Bitti'ye tıklayın.

Google Cloud_Dizinleme API'sini oluşturma ve etkinleştirme adım 5

Açılan sayfada, 'E-posta' alanında bulunan e-posta adresini kaydedin, çünkü daha sonra buna ihtiyacımız olacak. 'Eylemler'e tıklayın ve ardından 'Anahtarları Yönet'e tıklayın.

Google Cloud_Dizinleme API'sini oluşturma ve etkinleştirme adım 6

Açılan sayfada 'Anahtar Ekle' kısmından 'Yeni anahtar oluştur' seçeneğine tıklayın ve ardından bir JSON dosyası oluşturup indirdiğiniz dosyayı kaydedin.

Google Cloud_Dizinleme API'sini oluşturma ve etkinleştirme adım 7

Şimdi Indexing API'yi aktifleştirmenin zamanı geldi; bunun için 'API'ler ve Hizmetler' bölümünden 'API'leri ve hizmetleri etkinleştir' seçeneğine tıklayın.

Google Cloud_Dizinleme API'sini oluşturma ve etkinleştirme adım 8

Sonraki sayfada 'Indexing API'yi arayın. Seçtikten sonra API'nizi etkinleştirmek için 'Etkinleştir'e tıklayın.

Search Console'a e-posta ekleme​

Dizinleme API'sini kullanmak için, web sitenizin Google Search Console'unda bir erişim hesabı oluşturmanız gerekir. Bunu yapmak için, Google Search Console'unuzu açmanız ve 'Ayarlar' bölümünden 'Kullanıcılar ve izinler'e tıklamanız ve ardından 'Kullanıcı ekle' bölümünden yeni bir kullanıcı eklemeniz gerekir. Yeni sayfa açıldığında, daha önce kaydettiğiniz e-postayı girin ve iznini 'Sahip' olarak değiştirin.

Search Console'a e-posta ekleme

Eğer e-postanızı kaydetmediyseniz, servis hesaplarına geri dönüp e-postayı kopyalamanız yeterli olacaktır.

E-postanız daha önce indirdiğiniz JSON dosyasında da olmalı ve dosyayı açıp 'client_email' ifadesini arayarak ona ulaşabilirsiniz.

[Vaka Çalışması] Dizinleme sorunlarını bulun ve düzeltin

Sıfır trafikten üstel büyümeye: GroupM Türkiye'nin Unilever'in endeksleme sorunlarını çözmek için Oncrawl'ı nasıl kullandığını keşfedin.
Vaka çalışmasını okuyun

JSON dosyasını yükleme​

JSON dosyasını Google Colab'a yüklemek için aşağıdaki kodu kullanmanız gerekecektir:

JsonKey = dosyalar.yükle ( )
Daha sonra, dosyaların yüklendiği yolu bulmanız gerekecektir. Bu, OS kütüphanesi kullanılarak yapılabilir. Aşağıdaki kodu kullanabilir ve dosyanın yüklendiğinden emin olmak için, başlangıçta bir 'if' kullanmanız gerekecektir:

eğer JsonKey:
json_yolu = '/içerik'
json_files = [ pos_json os.listdir ( path_to_json ) pos_json.endswith ( ' .json ' ) ]
yol = "/içerik/" + json_dosyaları [ 0 ]

Yetkilendirme istekleri​

Bildiğiniz üzere Google, Indexing API'yi kullanabilmek için programımızın ve scriptimizin istekleri yetkilendirmek için OAuth 2.0 kullanması gerektiğini duyurdu.

Yetkilendirme protokolleri hakkında

OAuth 2.0'ı kullanmak ve istek göndermek için bazı bilgileri aramanız ve bunları elde etmek için Indexing API'sinden aşağıdaki bağlantıyı kullanmanız gerekir. Bu konu hakkında daha fazla bilgi için Authorize Requests sayfasına başvurabilirsiniz.

KAPSAMLAR = [ "https://www.googleapis.com/auth/indeksleme" ]

İstek gönderme​

Google , Dizinleme API'sini Kullanma sayfasında, istek göndermek için aşağıdaki koşullara sahip bir uç nokta kullanmamız gerektiğini ve isteklerin post metodu kullanılarak gönderilmesi gerektiğini açıklamıştır :

Tek bir istek göndermek istiyorsanız:

SON NOKTA = "https://indexing.googleapis.com/v3/urlBildirimler:yayınla"
Toplu istek göndermek istiyorsanız:

SON NOKTA = "https://indexing.googleapis.com/batch"
Bu scriptte istekleri tek tek gönderiyoruz ancak fark şu ki, zaten 100 URL içeren bir sözlük oluşturduk ve tüm istekler tek seferde gönderiliyor.

Şimdi 'Authorize credentials' değişkenlerini oluşturmamız gerekiyor ve bunu oauth2client kütüphanesini ve ServiceAccountCredentials'ı kullanarak aşağıdaki kodları kullanarak değişkenleri oluşturarak yapıyoruz:

kimlik bilgileri = ServiceAccountCredentials.from_json_keyfile_name ( yol ,kapsamlar=KAPSAMLAR )
http = kimlik bilgileri.yetkilendirme ( httplib2.Http ( ))
Bir sonraki adımda, servis araçları oluşturacağız ve ardından bir fonksiyon oluşturacağız. Bundan sonra, son isteği ele alacağız. Kodların nasıl çalıştığı hakkında daha fazla bilgi için Class BatchHttpRequest sayfasını okuyabilirsiniz.

Bu bölümdeki son kodlar aşağıdaki gibi gözükecektir:

servis = build ( 'indeksleme' , 'v3' , kimlik bilgileri=kimlik bilgileri )

def index_api ( istek_kimliği, yanıt, istisna ) :
istisna Hiçbiri değilse :
yazdır ( istisna )
başka :
yazdır ( cevap )
eğer JsonKey:
toplu iş = servis.new_batch_http_request ( geri arama = dizin_api )

url için , isteklerdeki api_type . items () :
toplu iş . ekle ( service.urlNotifications () . yayınla (
gövde= { "url" : url, "tür" : api_türü }))

toplu iş. yürüt ()
İsteği gönderdikten sonra, eğer her şey doğru şekilde yapılmışsa, istekler aşağıdaki örnekteki gibi yazdırılacaktır:

Son kodlar basılı örnek

Google Colab'ın son halini buradan inceleyebilirsiniz .

Çözüm​

Python, belirli görevleri otomatikleştirmeye yardımcı olabilen oldukça çok yönlü bir araçtır, sitenizin verilerini çıkarmak ve analiz etmek için kullanılabilir ve düzgün kullanıldığında sitelerimizin nasıl tarandığını ve dizine eklendiğini analiz etmeye ve iyileştirmeye yardımcı olabilir. Umarım Google'ın API dizinini bir dahaki sefere kullandığınızda bu öğreticiden iyi bir şekilde yararlanabilirsiniz.

API hala hızlı devir hızı olan sayfalara sahip web siteleri için ayrılmış olsa da (iş ilanı siteleri gibi) hala güçlü bir araçtır. Ve belki de, kim bilir, gelecekte daha fazla şeye genişletilebilir ve bu eğitim daha da faydalı olacaktır.
 
Anasayfa Üye ol Giriş yap