Web Sitelerinden E-Posta Adreslerini Listeleme, bir sayfada yazılı internet sitelerindeki e-mail adreslerinin yazdırılmasını öğretmektedir.
Web Sitelerinden E-Posta Adreslerini Listeleme – Giriş
Günümüzde birçok web sitesi, kullanıcıların veya şirketlerin iletişim bilgilerini içermektedir. Bu bilgilerin en önemlilerinden biri e-posta adresleridir. Birden fazla web sitesinden e-posta adreslerini manuel olarak toplamak oldukça zaman alıcı olacaktır. Bu dosyada, web sitelerinden e-posta adreslerini otomatik olarak nasıl listeleyebileceğinizi öğreneceğiniz bir Excel VBA kodu bulunmaktadır.
Web Sitelerinden E-Posta Adreslerini Listeleme –
Kullanılan VBA Kodları
Dosyada, Excel çalışma kitabında iki sayfa kullanarak, belirtilen web sitelerinden e-posta adreslerini çekip listelenme işlemi yerine getirilmektedir. Bu işlem esnasında kodlar, basit bir HTTP isteği yaparak web sayfasının içeriğini çeker ve RegEx kullanarak e-posta adreslerini ayıklamaktadır. Bu özelliklerin listesi şu şekildedir:
- Dim: Değişken tanımlamak için kullanılmaktadır. Bu kodda çalışma sayfaları, HTTP ve HTML nesneleri, düzenli ifadeler ve diğer geçici veriler için çeşitli değişkenler tanımlanmıştır.
- Set: Nesnelere başvuru yaparken kullanılmaktadır. Bu kodda, ws1, ws2, http, html, emailPattern gibi nesneleri başlatmak için Set kullanılmıştır.
- MSXML2.XMLHTTP.6.0: HTTP istekleri yapmak ve web sayfalarının içeriğini almak için kullanılan bir nesnedir. Bu kodda, her bir URL’ye HTTP GET isteği göndererek sayfa içeriği alınır.
- HTMLFile: HTML içeriğini işlemek için kullanılan bir nesnedir. Alınan sayfa içeriği bu nesneye aktarılmaktadır. Böylece, içeriğin üzerinde işlemler yapılmaktadır.
- VBScript.RegExp: Düzenli ifadeleri (RegEx) işlemek için kullanılan bir nesnedir. E-posta adreslerini belirli bir desenle taramak için bu nesne kullanılmaktadır.
- For Each: Koleksiyonlar üzerinde döngü yaparak her bir öğeyi işlemek için kullanılan bir döngü yapısıdır. Bu kodda, her bir URL’yi ve her bir e-posta adresini işlemek için For Each döngüleri kullanılmıştır.
- Range.ClearContents: Hücre aralığındaki tüm içeriği temizlemek için kullanılır. Kodda, sonuçların yazılacağı hücreler önceden temizlenir.
- Range(“A” & Rows.Count).End(xlUp): Excel’de son dolu hücreyi bulmak için kullanılan bir yöntemdir. Bu kodda, yeni e-posta adreslerinin alt alta yazılması için kullanılır.
- Offset: Bir hücreden belirli bir mesafe kadar başka bir hücreye geçmek için kullanılır. Kodda, e-posta adreslerinin doğru hücrelere yazılması için Offset kullanılmıştır.
Bu özellikler, kodun çalışmasını sağlayan temel bileşenlerdir ve her biri farklı bir amaca hizmet etmektedir. Kodun nasıl çalıştığını anlamak önemlidir. Böylece, gerektiğinde özelleştirmek için de faydalı olacaktır.
Adım Adım Kod Açıklamaları
Bu bölümde, yukarıda verilen VBA kodunun nasıl çalıştığını adım adım incelenecektir. Kodun her bir bölümünde kullanılan yöntemler ve VBA özellikleri hakkında detaylı açıklamalar yaparak, kodun işlevi ve nasıl çalıştığını anlamanız sağlanacaktır. Her adım, kodun belirli bir işlevini gerçekleştirmek için kullanılmaktadır. Böylecek, bu işlevler bir araya geldiğinde, web sitelerinden e-posta adreslerini toplamak için güçlü bir araç ortaya çıkacaktır.
Çalışma Sayfalarını Tanımlama
Bu kodun ilk adımı, çalışma sayfalarını tanımlamaktır. ws1 ve ws2 olarak belirlenen bu sayfalar, URL’lerin bulunduğu ve e-posta adreslerinin listeleneceği sayfaları temsil etmektedir. ws1, URL’leri içeren bir tabloyu barındırırken, ws2 ise bu URL’lerden elde edilen e-posta adreslerini saklayacaktır. Kodun çalıştırılmasıyla birlikte, ws2 sayfasındaki mevcut içerikler temizlenmektedir. Böylece yeni veriler temiz bir sayfaya yazdırılmaktadır. Bu adım, işleme başlamadan önce sayfaların doğru şekilde tanımlanmasını sağlamaktadır.
HTTP ve HTML Nesnelerinin Oluşturulması
Bir sonraki adım, HTTP isteği yapmak ve gelen yanıtı HTML formatında işlemek için gerekli olan nesnelerin oluşturulmasıdır. Kod, MSXML2.XMLHTTP.6.0 nesnesini kullanarak her bir URL’yi ziyaret ederek, sayfanın HTML içeriğini almaktadır. Bu içerik daha sonra HTMLFile nesnesine aktarılmaktadır. Böylece, sayfa içeriği üzerinde işlem yapılan hale gelmektedir. Bu adım, kodun veriyi toplamasını sağlamaktadır. İlave olarak işlenen ham malzemeyi oluşturmaktadır
E-Posta Adreslerini Bulma
E-posta adreslerinin bulunması için kod, VBScript.RegExp nesnesini kullanarak sayfa içeriğini taramaktadır. Çünkü, RegEx deseni, e-posta adreslerinin genel formatını tanımlamaktadır. İlave olarak, sayfa içeriğinde bu desenle eşleşen tüm e-posta adreslerini de aramaktadır. Hemen ardından, bulunan e-posta adresleri matches koleksiyonuna eklenmektedir. Bu aşamada, kod tüm HTML içeriğini tarar ve e-posta adreslerini ayıklamaktadır. Bu adresler daha sonra Excel sayfasına yazılmaktadır.
Sonuçların Yazdırılması
Kodun son aşaması, bulunan e-posta adreslerini ws2 sayfasına yazdırmaktır. Daha sonra, her bir e-posta adresi, sayfadaki uygun hücrelere alt alta gelecek şekilde yerleştirilmektedir. Çünkü, kod dolu hücrelerin altına yeni e-posta adreslerini ekleyerek çalışmaktadır. Böylece, mevcut verilerin üzerine yazılmasını engellenemektedir. Sonuç olarak, tüm e-posta adresleri ws2 sayfasında listelenmektedir.
Web Sitelerinden E-Posta Adreslerini Listeleme – Sonuç
Bu dosyada, Excel VBA kullanarak web sitelerinden e-posta adreslerini nasıl toplayabileceğiniz öğretilmektedir. Çünkü, Web sitelerindeki e-posta adreslerini manuel olarak aramak ve toplamak zor olabilmektedir. Ancak bu süreç VBA ile otomatik hale getirildiğinde çok daha verimli olacaktır. Bu sebeple ele aldığımız kod örneği, bu işlemi basit ve etkili bir şekilde gerçekleştirebileceğinizi göstermektedir. Bu teknik, birçok farklı veri türü için de uyarlanarak, farklı senaryolarda kullanılabilmektedir. VBA’nın gücü ve esnekliği, veri toplama süreçlerini otomatikleştirmektedir. Böylece, bu süreçlerden en iyi şekilde yararlanılmaktadır.