SEO Dosyalarını Ayrıştırmak ve Özetlemek için Python Kullanın

Yayınlanan: 2021-08-10

Herhangi bir harika SEO uzmanı için harika bir veri kaynağı, günlük dosyalarında bulunan arama motoru tarama verileridir. Arama motorlarının web sitenizi tam olarak nasıl taradığını ve anladığını öğrenmek için günlük dosyalarını analiz edebilirsiniz. Bu size hiçbir üçüncü taraf SEO aracının yapamayacağı bir fikir verir. Hem zamandan hem de paradan tasarruf etmek istiyorsanız, Python ile SEO için günlük dosyası verilerinin ayrıştırılmasını, doğrulanmasını ve döndürülmesini otomatikleştirmeyi deneyin. Bu yazıda, Python ile SEO dosyalarının nasıl ayrıştırılacağı ve döndürüleceği ile ilgili adımlarda size yol göstereceğiz.

SEO Dosyalarını Ayrıştırmak ve Özetlemek için Python Nasıl Kullanılır

SEO Dosyalarını Ayrıştırmak ve Özetlemek için Neden Python Kullanmalısınız?

Python, veri, web geliştirme ve algoritma yürütme söz konusu olduğunda çok çeşitli uygulamalara sahip çok amaçlı bir programlama dilidir . SEO verilerinizi günlük dosyalarından ayrıştırmak ve döndürmek için Python'u kullanmak, şunları yapmanıza yardımcı olur:

  • Arama motorlarının web sitenizi nasıl taradığına ve gördüğüne dair somut kanıtlar sunarak sonuçlarınızı doğrulayın
  • Bir sorunun ölçeğini ve sorunu çözmenin ne kadar yardımcı olabileceğini görmenize yardımcı olarak bulgularınıza öncelik verin
  • Diğer veri kaynaklarında göremediğiniz diğer sorunları bulun

Günlük dosyası verilerini kullanmanın çeşitli faydaları olsa da, birçok SEO uzmanı çeşitli nedenlerle ondan uzak durur. Birincisi, verileri bulmak genellikle çok zaman alabilen bir geliştirme ekibinden geçmek anlamına gelir. Ayrıca, ham dosyalar büyük ve anlaşılması zor olabilir, bu da verilerin ayrıştırılmasını zorlaştırır. Son olarak, süreci kolaylaştırmak için tasarlanmış araçların maliyeti çok yüksek olabilir.

Bunların hepsi geçerli endişeler olsa da, başka bir yol daha var. Eğer kodlama ve dilleri komut dosyası hakkında bazı bilgilere sahip, işlemi otomatik hale getirebilirsiniz. SEO için sunucu günlüklerini analiz etmek için Python'un nasıl kullanılacağına ilişkin adımlarda size yol göstereceğiz.

SEO Dosyalarını Ayrıştırmak ve Özetlemek için Python Nasıl Kullanılır

Başlamadan önce, günlük dosyası verilerini ayrıştırmak için hangi biçimi kullanmak istediğinizi düşünmeniz gerekir. Apache, Nginx ve IIS gibi birkaç seçeneğiniz var. Ayrıca, birçok web sitesi, içeriği en yakın uç konumdan bir kullanıcıya sunmak için artık Cloudflare, Cloudfront ve Akamai gibi CDN sağlayıcılarını kullanıyor.

Bu yazımızda Kombine Log Formatına odaklanacağız. Bunun nedeni, Birleştirme Günlük Formatının Nginx için varsayılan ve tipik olarak Apache sunucularında seçim olmasıdır.

Ne tür bir formatla uğraştığınızı bilmiyorsanız, bir web sitesinin teknoloji yığını hakkında size bilgi verebilecek Builtwith ve Wappalyzer gibi hizmetler vardır .

Hala emin değilseniz, ham dosyalardan birini açmanız yeterlidir. Belirli alanlara ilişkin bilgilerle sağlanan yorumlara çapraz referans verin.

Ayrıca, hangi arama motorunu dahil etmek isteyeceğinizi de düşünmeniz gerekecektir. Bu yazıda Google'a odaklanacağız çünkü Google, küresel pazar payının %92'sinden fazlası ile en baskın arama motorudur .

SEO Dosyalarını Ayrıştırmak ve Özetlemek için Python Kullanın

1. Dosyaları Tanımlayın ve Formatları Belirleyin

Sonuçsal bir SEO analizi gerçekleştirmek için, tipik bir web sitesi için en az yaklaşık 100.000 istek ve iki ila dört haftalık veriye ihtiyacınız olacaktır. Dosyaların boyutları nedeniyle günlükler genellikle ayrı günlere bölünür. Büyük olasılıkla işlemek için birden fazla dosya alacaksınız.

Komut dosyasını çalıştırmadan önce onları birleştirmediğiniz sürece kaç dosyayla uğraşacağınızı bilmediğiniz için, ilk adım glob modülünü kullanarak klasörümüzdeki tüm dosyaların bir listesini oluşturmaktır. Ardından, belirttiğimiz bir desenle eşleşen herhangi bir dosyayı döndürebilirsiniz. Aşağıdaki kod, herhangi bir TXT dosyasıyla eşleşecektir:

ithalat küresi

dosyalar = glob.glob('*txt.')

Ancak, tüm dosyalar TXT değildir. Günlük dosyaları birden çok dosya biçiminde gelebilir. Dosya uzantısını bile tanımayabilirsiniz.

Aldığınız dosyaların birden çok alt klasöre bölünmesi de mümkündür ve bunları tek bir konuma kopyalamak için zaman kaybetmek istemiyoruz. Neyse ki, glob hem özyinelemeli aramaları hem de joker karakter operatörlerini destekler . Bu, bir alt klasördeki veya alt alt klasörlerdeki tüm dosyaların bir listesini oluşturabileceğiniz anlamına gelir.

dosyalar = glob.glob('**/*.*', özyinelemeli=Doğru)

Ardından, listenizde hangi tür dosyaların bulunduğunu belirlemek istiyorsunuz. Bunu yapmak için, belirli dosyanın MIME türü algılanabilir. Bu, uzantı ne olursa olsun, ne tür bir dosyayla uğraştığınızı söyler.

Bunu, libmagic C kitaplığının etrafındaki bir sarmalayıcı olan python-magic kullanarak ve basit bir işlev oluşturarak yapabilirsiniz.

pip kurulum python-magic

pip kurulum libmagic

ithalat büyüsü

def dosya_türü(dosya_yolu):

mime = magic.from_file(file_path, mime=Doğru)

mim dönüşü

Ardından, dosyalarınızda dolaşmak ve işlevi uygulamak için liste kavramayı kullanabilir, hem adları hem de türleri depolamak için bir sözlük oluşturabilirsiniz.

file_types = [dosyalardaki dosya için dosya_tipi(dosya)]

file_dict = dict(zip(files, files_types))

Son olarak, bir MIME türü metin/düz döndüren ve diğer her şeyi hariç tutan dosyaların bir listesini çıkarmak için bir işlev ve bir süre döngüsü kullanın.

sıkıştırılmamış = []

def file_identifier(dosya):

anahtar için file_dict.items() içindeki değer:

değerde dosya varsa:

sıkıştırılmamış.append(anahtar)

file_identifier('metin/düz'):

file_dict içinde file_identifier('metin/düz')

seo günlük dosyaları nasıl ayrıştırılır ve döndürülür

2. Arama Motoru İsteklerini Çıkarın

Klasörünüzdeki veya klasörlerinizdeki dosyaları filtreledikten sonraki adımınız, yalnızca önemsediğiniz istekleri ayıklayarak dosyaların kendilerini filtrelemektir.

Bu, dosyaları GREP veya FINDSTR gibi komut satırı yardımcı programlarını kullanarak birleştirme ihtiyacını ortadan kaldırır ve doğru komutu ararken size zaman kazandırır.

Bu durumda, yalnızca Googlebot isteklerini istediğiniz için, ilgili tüm kullanıcı aracılarını eşleştirmek için “Googlebot”u arayacaksınız.

Dosyanızı okumak ve/veya yazmak için Python'un açık işlevini ve aramayı gerçekleştirmek için Python'un normal ifade modülü RE'yi kullanabilirsiniz.

3. İstekleri Ayrıştırma

İstekleri ayrıştırmanın birden çok yolu vardır. Bu makalenin hatırına, Pandas'ın dahili CSV ayrıştırıcısını ve bazı temel veri işleme fonksiyonlarını şu amaçlarla kullanacağız :

  • Gereksiz sütunları bırakın
  • Zaman damgasını biçimlendir
  • Tam URL'lere sahip bir sütun oluşturun
  • Kalan sütunları yeniden adlandırın ve yeniden sıralayın

Bir etki alanı adını kodlamak yerine, kullanıcıya soru sormak ve onu bir değişken olarak kaydetmek için giriş işlevini kullanabilirsiniz.

4. İstekleri Doğrulayın

Arama motoru kullanıcı aracılarını yanıltmak çok basittir, istek doğrulamasını sürecin hayati bir parçası haline getirir ve bu da kendi üçüncü taraf taramalarınızı analiz ederek yanlış sonuçlar çıkarmanızı engeller.

Bunu yapabilmek için dnspython isimli bir kütüphane kurmanız ve ters DNS gerçekleştirmeniz gerekmektedir. Yinelenen IP'leri bırakmak ve aramaları daha küçük DataFrame'de çalıştırmak için pandaları kullanabilirsiniz. Ardından sonuçları yeniden uygulayın ve geçersiz istekleri filtreleyin.

Bu yaklaşım, aramaların hızını büyük ölçüde artırır ve birkaç dakika içinde milyonlarca isteği doğrular.

seo dosyaları için neden python kullanmalısınız?

5. Verileri Özetleyin

Doğrulamadan sonra, temizlenmiş ve anlaşılması kolay bir veri kümeniz olur. İlgi çekici noktaları daha kolay analiz etmek için bu verileri döndürmeye başlayabilirsiniz.

Farklı durum kodlarına yönelik isteklerin sayısını saymak için Panda'ların groupby ve agg işlevlerini kullanarak basit toplama ile başlayabilirsiniz.

status_code = logs_filtered.groupby('Durum Kodu').agg('size')

Excel'de kullandığınız sayım türünü çoğaltmak için, 'sayım' değil, 'boyut' toplam işlevini belirtmeniz gerekir. Sayım kullanırsanız, işlevi DataFrame içindeki tüm sütunlarda çağırırsınız ve boş değerler farklı şekilde işlenir. Dizini sıfırlamak, her iki sütunun başlıklarını da geri yükler ve ikinci sütun daha alakalı bir şeyle yeniden adlandırılabilir.

Daha gelişmiş veri işleme istiyorsanız, Pandas'ın yerleşik pivot tabloları, yalnızca tek bir kod satırıyla karmaşık toplamaları mümkün kılan Excel ile karşılaştırılabilir işlevsellik sunar. En temel düzeyinde, işlev belirtilen bir DataFrame ve dizin (veya bir çoklu dizin gerekliyse dizinler) gerektirir ve karşılık gelen değerleri döndürür.

Daha fazla özgünlük için, aggfunc parametresi kullanılarak gerekli değerler bildirilebilir ve toplamalar (toplam, ortalama, vb.) uygulanabilir. Sütunlar parametresi, daha net çıktı için değerleri yatay olarak görüntülemenize de yardımcı olabilir.

Aralıkları Dahil Etme

Bayt gibi birçok farklı sayısal değere sahip olabilecek veri noktaları için, verileri gruplamak isteyeceksiniz. Bunu yapmak için, aralıklarınızı bir liste içinde tanımlayın ve ardından, belirtilen maksimum değer hakkında herhangi bir şeyi yakalamak için np.inf belirterek, değerleri kutulara sıralamak için kesme işlevini kullanın.

6. İhracat

Son olarak, günlük verilerinizi ve özetlerinizi dışa aktarmanız gerekir. Analiz etmeyi kolaylaştırmak için verilerinizi CSV yerine bir Excel dosyasına aktarmak isteyeceksiniz. XLSX dosyaları birden çok sayfayı destekler; bu, tüm DataFrame'leri tek bir dosyada birleştirebileceğiniz anlamına gelir. Bunu excel için kullanarak başarabilirsiniz. Aynı çalışma kitabına birden fazla sayfa eklediğiniz için bir ExcelWriter nesnesi belirtmeniz gerekecek. Ayrıca, çok sayıda pivotu dışa aktarırken, DataFrame'leri ve sayfa adlarını bir sözlükte depolayarak ve bir for döngüsü kullanarak işleri basitleştirmeye yardımcı olur.

Excel'in satır sınırının 1.048.576 olduğunu unutmayın. Her isteği dışa aktardığınız için, büyük numuneleriniz varsa bu sorunlara neden olabilir. CSV dosyalarının sınırı yoktur, bu nedenle bir CSV dışa aktarımına yedek olarak eklemek için bir if ifadesi kullanılabilir. Ardından, DataFrame günlük dosyasının uzunluğu 1.048.576'dan fazlaysa, CSV olarak dışa aktarılır. Bu, komut dosyasının başarısız olmasını önler ve yine de pivotları tek bir dışa aktarmada birleştirir.

SEO için python nasıl kullanılır

SEO Dosyalarını SEO Design ile Ayrıştırma ve Döndürme Chicago

SEO dosyalarını ayrıştırmak ve döndürmek için Python kullanmak yararlı bir beceri olsa da, ustalaşması da zordur. SEO dosyalarınızla ilgili yardıma ihtiyacınız varsa, yardım için bugün SEO Design Chicago'daki SEO veri uzmanlarıyla iletişime geçin!

SSS:

  • Python nedir?
  • SEO dosyalarımı ayrıştırmak ve döndürmek için Python'u nasıl kullanırım?
  • SEO dosyalarımı ayrıştırmak ve döndürmek için neden Python kullanmalıyım?
  • Python kullanarak arama motoru isteklerini nasıl ayıklayabilirim?
  • SEO dosyalarımı ayrıştırmak ve döndürmek için nasıl kod yazacağımı bilmem gerekiyor mu?