Zephyrnet Logosu

Python Destekli Rakip Analizi: Serpstat API ile Anahtar Kelime Analizleri — Serpstat Blogu

Tarih:

Python ile API Kullanarak Rakip Anahtar Kelime Analizleri | SERPSTAT

607 8

SEO - 13 dak. Okundu - Ocak 2, 2024
Python Destekli Rakip Analizi: Serpstat API ile Anahtar Kelime Analizleri
Andreas Voniatis
Andreas Voniatis

Serpstat API, anahtar kelime araştırmasından backlink analitiğine kadar SEO iş akışının hemen hemen tüm yönlerini kapsayan birçok uç noktaya sahiptir. Etki Alanı Anahtar Kelimeleri uç noktası yalnızca müşteriniz ve rakipleri hakkındaki ham verileri çıkarmak için değil, aynı zamanda içgörü oluşturmak için veri bilimi tekniklerini kullanmak için de kullanılabilir. Aşağıda Python kullanarak bunu nasıl yapacağımızı göstereceğiz. 

Analizler, Looker, Power BI vb. gibi SEO kontrol paneli raporlarınızı güçlendirmek için bulut bilişim veri hattının bir parçası olarak kullanılabilir. 

API Simgenizi alın

SERPSTAT API'sini sorgulayabilmeniz için önce bir API belirtecine ihtiyacınız olacak; bu, herhangi bir dokümantasyon sayfasında görünecektir. ana API sayfası, Aşağıda gösterildiği gibi:

SERPSTAT API'si

API belirtecinizi kopyaladıktan sonra Jupyter iPython not defterinizi başlattığınızda bunu kullanabilirsiniz.

Jupyter iPython Notebook'unuzu başlatın

Python kodunun tamamı Jupyter iPython not defteri ortamında yürütülecektir. Aynı şekilde, tercihiniz buysa kod bir COLAB not defterinde çalışacaktır. Bunu kurup çalıştırdıktan sonra kitaplıklarda bulunan işlevleri içe aktarın:

ithalat istekleri
pandaları pd olarak içe aktar
numpy'yi np olarak içe aktar
ithalat json
plotnine içe aktarımından *

API çağrıları yapmak için istek kitaplığına ihtiyacınız olacak. 

Python'daki Excel'e benzer şekilde veri çerçevelerini işlemek için Python'u kullanacağız ve 'pd'yi kısayol takma adı olarak atayarak pandas işlevlerinin kullanımını basitleştireceğiz. Veri çerçevelerindeki verileri işlemek için 'np' olarak kısaltılan Numpy'yi de kullanacağız.

API'lerden gelen veriler genellikle sözlük biçiminde olduğundan JSON, sonuçları bir veri çerçevesine aktarabileceğimiz veri yapılarına açmamıza yardımcı olacaktır.

api_token = 'API anahtarınız'

Bu daha önce elde edilmişti (yukarıya bakınız).

api_url_pattern = 'https://api.serpstat.com/v{version}?token={token}'

Serpstat API’nin farklı uç noktalarını sorgulamamıza olanak tanıyan bir URL modeli belirleyeceğiz. Geçerli sürüm APIv4'tür. Uygulama programlama arayüzünü birkaç kez çağıracağınız için bu, tekrarlanan kodların yazılmasını önleyecektir.

api_url = api_url_pattern.format(sürüm=4, belirteç=api_token)

API sürümünü ve API belirtecinizi içerecek şekilde API URL'sini ayarlayın. 

API URL'si

Alan Adı Anahtar Kelimelerini Alın

Heyecan verici kısım. Artık görünen herhangi bir alan adı için anahtar kelimeleri sorgulayarak çıkarabiliriz. Alan Anahtar Kelimeleri uç nokta. Bu, belirli bir arama motoru için bir alanın ilk 100'de yer aldığı tüm anahtar kelimeleri gösterecektir.

API'nin gerektirdiği giriş parametrelerini ayarlayarak başlıyoruz:

domain_keyword_params = {
    "id": "1",
    "method": "SerpstatDomainProcedure.getDomainKeywords",
    "params": {
        "domain": "deel.com",
        "se": "g_uk",
        "withSubdomains": False,
        "sort": {
            "region_queries_count": "desc"
        },
        "minusKeywords": [
            "deel", "deels"
        ],
        "size": "1000",
        "filters": {
            "right_spelling": False
        }
    }
}

Unutulmaması gereken bir nokta: Etki Alanı Anahtar Kelimeleri uç noktasına, yöntem şu şekilde ayarlanarak erişilir: “SerpstatDomainProcedure.getDomainAnahtar Kelimeler”

Alan adınızı ayarlamanız gerekecek "ihtisas" altında ve arama motorunuz altında “g_uk”.

Bizim durumumuzda deel.com'un Google İngiltere'deki anahtar kelimelerine bakacağız. Arama motorlarının tam listesi mevcuttur okuyun Google'ın dünya çapındaki bölgelerini ve Bing ABD'yi kapsar.

Ek seçenekler arasında eksi anahtar kelimeler (negatif eşleme) bulunur; bizim durumumuzda, organik trafiğin nereden geldiğini anlamak için yalnızca marka dışı anahtar kelimelerle ilgileniyoruz.

Biz de ayarladık "boyut" parametresini mümkün olan maksimum satır çıktısı olan 1,000'e ayarlayın. 

API'yi belirli anahtar kelimeleri içerecek şekilde kısıtlamak gibi başka ilginç parametreler de vardır ("anahtar kelimeler") veya alan adı içindeki site URL'leri (“URL”).

Parametre seti ile aşağıdaki kodu kullanarak istekte bulunabiliriz:

domain_keyword_resp = requests.post(api_url, json=domain_keyword_params)

if domain_keyword_resp.status_code == 200:
    domain_keyword_result = domain_keyword_resp.json()
    print(domain_keyword_result)
else:
    print(domain_keyword_resp.text)

API çağrısının sonuçları şurada saklanır: domain_keyword_resp. Yanıtı json işlevini kullanarak okuyacağız ve verileri depolayacağız. domain_keyword_result.

Etki alanı anahtar kelimesi sonucu

If else yapısı, API çağrısının beklendiği gibi çalışmaması durumunda size bilgi vermek için kullanılır; çağrıyı yaparken herhangi bir veri veya hata olmaması durumunda API yanıtının ne olduğunu gösterir.

Çağrı yazdırmalarını çalıştırma domain_keyword_result şuna benziyor:

{'id': '1', 
'result': 
{'data': [
{'domain': 'deel.com', 'subdomain': 'www.deel.com', 'keyword': 
'support for dell', 'keyword_length': 3, 'url': 'https://www.deel.com/',
 'position': 73, 'types': ['pic', 'kn_graph_card', 'related_search',
 'a_box_some', 'snip_breadcrumbs'], 'found_results': 830000000, 
'cost': 0.31, 'concurrency': 3, 'region_queries_count': 33100,
 'region_queries_count_wide': 0, 'geo_names': [], 'traff': 0,
 'difficulty': 44.02206115387234, 'dynamic': None}, 
{'domain': 'deel.com', 'subdomain': 'www.deel.com',
'keyword': 'hr and go',
 'keyword_length': 3, 'url': 'https://www.deel.com/',
 'position': 67, 'types': ['related_search', 'snip_breadcrumbs'],
 'found_results': 6120000000, 'cost': 0.18, 'concurrency': 4,
 'region_queries_count': 12100, 'region_queries_count_wide': 0,
 'geo_names': [], 'traff': 0, 'difficulty': 15.465889053157944,
 'dynamic': 3}, 

Herhangi bir API ile çalışırken, verileri kullanılabilir bir formatta nasıl ayrıştıracağınızı bilmeniz için veri yapısını yazdırmak önemlidir. Bu, istediğimiz verilerin sonuç veri anahtarlarının altında yer aldığı, birden çok anahtara sahip bir sözlük üretmez. Verilerin değerleri, her sözlüğün bir anahtar kelimeyi temsil ettiği bir sözlük listesindedir.

Verileri çıkarmak için aşağıdaki kodu ürettik domain_keyword_result ve onu oraya doğru itin domain_keyword_df veri çerçevesi:

domain_keyword_df = pd.DataFrame(domain_keyword_result['sonuç']['veri'])

Veri çerçevesini görüntüleyelim:

görüntü(domain_keyword_df)

Hangisi benziyor:

Veri çerçevesi

Veri çerçevesi, alan adına ait tüm anahtar kelimeleri maksimum 1,000 satıra kadar gösterir. Aşağıdaki gibi sütun alanlarını içerir:

  • bölge_sorguları_sayım: hedef bölgenizdeki arama hacmi
  • url: anahtar kelimenin sıralama URL'si
  • pozisyon: SERP sıralaması
  • türleri: SERP özellikleri
  • eşzamanlılık: İşlemsel ve/veya ticari amacın düzeyini gösterebilen ücretli arama ağı reklamlarının miktarı.

Daha büyük bir sitede çalıştığınız için daha fazlasını istiyorsanız şunları yapabilirsiniz: 

2.URL'nin giriş parametresi olarak belirtildiği bir for döngüsünün parçası olarak bu site URL'lerinde yukarıdaki kodu kullanarak birden fazla Etki Alanı Anahtar Kelimesi çağrısı çalıştırın. 'URL'.

Veri Özellikleri Oluşturun

Analizler için ham verilerin özetlenmesine yardımcı olacak bazı özellikler oluşturmak isteyeceğiz. En iyi uygulamaya göre, veri çerçevesinin bir kopyasını oluşturacağız ve onu, adı verilen yeni bir veri çerçevesine kaydedeceğiz. dk_enhanced_df.

dk_enhanced_df = domain_keyword_df.copy()

Adı verilen yeni bir sütun ayarlanıyor 'saymak' daha sonra göreceğiniz gibi şeyleri tam anlamıyla saymamıza olanak tanıyacak.

dk_enhanced_df['sayım'] ​​= 1

Ayrıca, site konumlarının SERP'ye göre dağılımını görmek için faydalı olabilecek ve kontrol paneli raporlarına aktarılabilecek, SERP sayfa kategorisini gösteren 'serp' adında özelleştirilmiş bir sütun oluşturmak istiyoruz.

<code data-code = "dk_enhanced_df['serp'] = np.where(dk_enhanced_df['konum'] dk_enhanced_df['serp'] = np.nerede(dk_enhanced_df['durum'] < 11, '1', 'Hiçbir yerde') dk_enhanced_df['serp'] = np.nerede(dk_enhanced_df['durum'].arasında(11, 20), '2', dk_enhanced_df['serp']) dk_enhanced_df['serp'] = np.nerede(dk_enhanced_df['durum'].arasında(21, 30), '3', dk_enhanced_df['serp']) dk_enhanced_df['serp'] = np.nerede(dk_enhanced_df['durum'].arasında(31, 99), "4+", dk_enhanced_df['serp'])

SERP yukarıda şu şekilde kodlanmıştır: numpy.nerede işlevi, daha tanıdık Excel if ifadesinin Python sürümüne benzer.

Türler sütununa dikkat ederseniz değerler, anahtar kelime için arama motorunda gösterilen evrensel arama sonucu türlerinin bir listesini içerir. 

Türler sütunu

Bunu açabilir ve aşağıdakileri kullanarak analiz etmeyi kolaylaştırabiliriz: tek sıcak kodlama (OHE) tekniği. OHE, tüm sonuç türü değerleri için sütunlar oluşturacak ve anahtar kelime için sonucun bulunduğu yere 1 değerini yerleştirecektir:

type_dummies = pd.get_dummies(dk_enhanced_df['types'].apply(pd.Series).stack()).
toplam(düzey=0)

One-hot kodlanmış sonuç türü sütunlarını şu şekilde birleştirin: dk_enhanced_df Veri çerçevesi

dk_enhanced_df = pd.concat([dk_enhanced_df.drop(sütunlar=['tipler']), type_dummies], eksen=1)

görüntü(dk_enhanced_df)

Görüntüle(dk_enhanced_df)

OHE ve diğer geliştirmeler sayesinde artık analiz etmeyi ve içgörü oluşturmayı kolaylaştıran sütunlara sahip genişletilmiş bir veri çerçevemiz var.

SEO yolculuğunuza güvenle başlayın! 

7 günlük denememize kaydolun ve API'mızı kullanarak gelişmiş SEO analizi dünyasına dalın. Taahhüt yok, sadece saf keşif. 

7-Day Ücretsiz Deneme

Etki Alanı Anahtar Kelime Verilerini Keşfetme

Alan anahtar kelime verilerinin istatistiksel özelliklerine bakarak başlayacağız. betimlemek() işlevi:

dk_enhanced_df.describe()

dk_enhanced_df.describe()

İşlev, ortalama (ortalama), ortalamadan dağılım oranını ölçen standart sapma (std), veri noktalarının sayısı (sayım) ve veri noktalarının sayısı gibi istatistiksel özelliklerini tahmin etmek için bir veri çerçevesindeki tüm sayısal sütunları alır. Yukarıda gösterildiği gibi 25. (%25) gibi yüzdelikler.

İşlev özet olarak yararlı olsa da iş açısından bakıldığında verileri toplamak genellikle yararlı olur. Örneğin, kombinasyonunu kullanarak Groupby ve ag Aşağıdaki kodu kullanarak SERP 1 ve benzerlerinde kaç anahtar kelimenin bulunduğunu sayabiliriz:

serp_agg = dk_enhanced_df.groupby('serp').agg({'count': 'sum'}).reset_index()

Groupby işlevi, veri çerçevesini sütuna göre gruplandırır (tıpkı Excel Pivot tablosunun yaptığı gibi) ve ardından diğer sütunları toplar. Kullanım durumumuzda, aşağıda gösterildiği gibi her bir SERP'de kaç anahtar kelimenin bulunduğunu saymak için SERP'ye göre gruplandırıyoruz:

görüntü(serp_agg)

görüntü(serp_agg)

Anahtar kelimelerin çoğu, SERP 3+ için 861 sayım değerinin gösterdiği gibi 4. sayfanın ötesindedir.

Verileri SEO uzmanı olmayan bir kitle için görselleştirmek istiyorsak,plotnine'ın ggplot işlevlerini kullanabiliriz:

serp_dist_plt = (ggplot(serp_agg, 
                        aes(x = 'serp', y = 'count')) + 
                    geom_bar(stat = 'identity', alpha = 0.8, fill = 'blue') +
                    labs(y = 'SERP', x = '') + 
                    theme_classic() +            
                    theme(legend_position = 'none')
                   )

gg grafiği veri çerçevesi ve estetik (aes) olmak üzere 2 ana argümanı alın. aes, veri çerçevesinin grafiğe eşlenecek kısımlarını belirtir. Grafik türünü, eksen etiketlerini vb. belirlemek için koda ek katmanlar eklenir. Bizim durumumuzda çubuk grafik olan geom_bar kullanıyoruz.

Kod grafik nesnesine kaydedilir serp_dist_plt çalıştırıldığında grafiği görüntüler:

serp_dist_plt

serp_dist_plt

Üretilen grafik, grafiğin görselleştirilmiş bir versiyonunu oluşturur. serp_agg SERP'ler arasındaki anahtar kelime konumlarının sayısını karşılaştırmayı çok daha kolay hale getiren dataframe.

Alan Adı Anahtar Kelimelerinden Rakip İçgörüleri

Bu harika olsa da, tek bir web sitesi alan adına ilişkin rakamlar, aynı arama alanında rekabet eden diğer sitelerle karşılaştırıldığında olabilecekleri kadar bilgi verici değildir. Yukarıdaki örnekte deel.com'un SERP 14'de 1 anahtar kelimesi var. Bu iyi mi? Kötü? Ortalama? Nasıl bilebiliriz?

Rakip etki alanı verileri, bu API kredilerini harcamak için iyi bir kullanım örneği olan bağlamı ve anlamı ekler. Yukarıdaki kodu uyarlayarak daha anlamlı bir şey elde etmek için çeşitli alanlardaki verileri alabiliriz.

Örneğin, aynı alanda faaliyet gösteren rakip sitelerde aynı API uç noktasını kullandıktan sonra artık her alan adı için SERP'ye göre anahtar kelime sayılarını gösteren bir tablomuz var:

API uç noktası

Daha görselleştirilmiş bir formatta şunu elde ederiz:

Daha görselleştirilmiş format

Eklenen bağlamla birlikte, deel'in SERP 1'lerde diğer rakiplere kıyasla muhtemelen düşük performans gösterdiğini görebiliriz. Ayrıca Bamboo HR'ın lider konumda olduğunu ve ardından da Remote.com'un geldiğini görüyoruz. Aslında Bambu, SERP 1'den daha fazla SERP 2'e sahip olan tek sitedir.

API ile yalnızca verilerden trendleri ayrıştırmakla kalmıyoruz, aynı zamanda hangi SERP anahtar kelimelerinin Bamboo'nun görünürlüğünü güçlendirdiğini görmek için gerçek verilere de sahibiz. Python'da bu şöyle olurdu:

Bamboo_serp_1s = mdk_enhanced_df.loc[mdk_enhanced_df['etki alanı'] == 'bamboohr.com'].copy()

Yukarıdakiler, bambuhr.com olan etki alanı için etki alanları ve filtreler için birleştirilmiş API verileriyle birlikte veri çerçevesini alır. 

görüntü(bamboo_serp_1s)

görüntü(bamboo_serp_1s)

Bu daha sonra içerik planlama amacıyla Excel'e aktarılabilir.

Diğer Alan Adı Anahtar Kelime Analizleri

Kod şu ana kadar Etki Alanı Anahtar Kelimeleri API'sinden veri çıkarmaya odaklandı ve yalnızca 1 sütunun nasıl tek bir alan ve birden çok alan hakkında bilgi üretebileceğini gösterdi.

Diğer sütunları inceleyerek ve Etki Alanı Anahtar Kelimeleri uç noktası içindeki rakip alanları karşılaştırarak daha ne kadar fazla bilgi elde edilebilir? Bu, SERPSTAT API'sinden bize sunulan diğer uç noktaları kullanmaya başlamadan öncedir.

Örneğin en çok hangi sonuç türleri görünüyor? Google'ın hangi trendde olduğunu anlamamıza yardımcı olabilecek belirli sonuç türleri zaman içinde artıyor mu? Yukarıdaki sonuç türleri sütununu açan kod, başlamanıza yardımcı olacaktır.

Konuk yazarların görüşleri, Serpstat editör kadrosu ve uzmanlarının görüşleri ile örtüşmeyebilir.

Bir hata mı buldunuz? Seçin ve bize söylemek için Ctrl + Enter tuşlarına basın

Daha Fazla SEO Aracı Keşfedin

Geri Bağlantı Denetleyicisi

Geri bağlantıları kontrol etme herhangi bir site için. Backlink profilinizin gücünü artırın

SEO için API

Büyük verileri arayın ve kullanarak sonuçlara ulaşın SEO API'sı

Önerilen gönderiler

Hizmetler ve diğer Araçlar

Topluluk ve Öğrenme Merkezi

Ekipler ve bireyler için hepsi bir arada SEO platformu
2013 yılında SEO ve PPC ajansı Netpeak tarafından doğdu ve geliştirildi. 2015'ten beri Netpeak Group'un bir parçası olarak bağımsız.

2013 yılında SEO ve PPC ajansı Netpeak tarafından doğdu ve geliştirildi. 2015'ten beri Netpeak Group'un bir parçası olarak bağımsız.
Bültenine abone

Bu makaleyi arkadaşlarınızla paylaşın

Emin misiniz?

Teşekkürler, yeni posta ayarlarınızı kaydettik.

Hata bildirin

Yükleniyor, lütfen bekleyin ...

posta cep Flipboard Messenger telgraf
spot_img

En Son İstihbarat

spot_img