Python ile web kazımayı öğrenmek istiyor ancak bir sonraki projeniz için Güzel Çorba, Selenium veya Scrapy kullanıp kullanmayacağınız konusunda kafanız mı karıştı? Tüm bu Python kitaplıkları ve çerçeveleri kendi başlarına güçlü olsalar da, tüm web kazıma ihtiyaçlarını karşılar ve bu nedenle belirli bir işlem için hangi aracı kullanmanız gerektiğini bilmek önemlidir. iş.
Güzel Çorba, Scrapy ve Selenium arasındaki farklara bir göz atalım, böylece bir sonraki Python web kazıma projenize başlamadan önce akıllıca bir karar verebilirsiniz.
1. Kullanım kolaylığı
Yeni başlayan biriyseniz, ilk gereksiniminiz öğrenmesi ve kullanması kolay bir kitaplık olacaktır. Güzel Çorba, size web'i kazımak için ihtiyacınız olan tüm temel araçları sunar ve özellikle Python ile minimum deneyime sahip olan ancak web ile çalışmaya başlamak isteyen kişiler için yararlıdır kazıma.
Tek uyarı, sadeliği nedeniyle Güzel Çorba, Scrapy veya Selenium ile karşılaştırıldığında güçlü değildir. Geliştirme deneyimine sahip programcılar hem Scrapy hem de Selenium'da kolayca ustalaşabilir, ancak yeni başlayanlar için Güzel yerine bu çerçevelerle gitmeyi seçerlerse, ilk projenin inşa edilmesi çok zaman alabilir. Çorba.
Beautiful Soup kullanarak example.com'daki başlık etiketi içeriğini kazımak için aşağıdaki kodu kullanırsınız:
url = "https://example.com/"
res = request.get (url).metin
çorba = GüzelSoup (res, 'html. ayrıştırıcı')
başlık = çorba.find("başlık").metin
Yazdır(başlık)
Selenyum kullanarak benzer sonuçlar elde etmek için şunu yazarsınız:
url = "https://example.com"
sürücü = web sürücüsü. Krom("yol/to/chromedriver")
sürücü.elde etmek(url)
başlık = driver.find_element (Tarafından: TAG_NAME, "başlık").get_attribute('metin')
Yazdır(başlık)
Bir Scrapy projesinin dosya yapısı, karmaşıklığını artıran birden çok dosyadan oluşur. Aşağıdaki kod, başlığı example.com'dan sıyırır:
içe aktarmak cılızsınıfBaşlıkÖrümcek(çıtır çıtır. Örümcek):
isim = 'başlık'
başlangıç_urls = ['https://example.com']
kesinayrıştırmak(kendi, yanıt):
teslim olmak {
'isim': yanıt.css('başlık'),
}
Resmi bir API sunan bir hizmetten veri çıkarmak istiyorsanız, akıllıca bir karar olabilir. web kazıyıcı geliştirmek yerine API'yi kullanın.
2. Kazıma Hızı ve Paralelleştirme
Üçü arasında, iş hıza geldiğinde açık ara kazanan Scrapy. Bunun nedeni, varsayılan olarak paralelleştirmeyi desteklemesidir. Scrapy kullanarak, aynı anda birden fazla HTTP isteği gönderebilirsiniz ve komut dosyası ilk istek grubu için HTML kodunu indirdiğinde, başka bir toplu iş göndermeye hazırdır.
Güzel Çorba ile, eşzamanlı HTTP istekleri göndermek için iş parçacığı kitaplığını kullanabilirsiniz, ancak bu uygun değildir ve bunu yapmak için çoklu iş parçacığı kullanmayı öğrenmeniz gerekir. Selenium'da, birden çok tarayıcı örneği başlatmadan paralelleştirme elde etmek imkansızdır.
Bu üç web kazıma aracını hız açısından sıralarsanız, Scrapy en hızlısı, ardından Güzel Çorba ve Selenium geliyor.
3. Hafıza kullanımı
Selenium, uygulamalarını bulan bir tarayıcı otomasyon API'sidir. web kazıma alanı. Bir web sitesini kazımak için Selenyum kullandığınızda, arka planda çalışan kafasız bir tarayıcı örneği ortaya çıkar. Bu, Selenium'u Beautiful Soup ve Scrapy ile karşılaştırıldığında yoğun kaynak kullanan bir araç haline getirir.
İkincisi tamamen komut satırında çalıştığından, daha az sistem kaynağı kullanır ve Selenium'dan daha iyi performans sunar.
4. Bağımlılık Gereksinimleri
Güzel Çorba, HTML ve XML dosyalarından veri çıkarmanıza yardımcı olan bir ayrıştırma araçları koleksiyonudur. Başka hiçbir şey olmadan gönderilir. Gibi kütüphaneleri kullanmalısınız. istekler veya urlib HTTP istekleri yapmak için, HTML/XML'yi ayrıştırmak için yerleşik ayrıştırıcılar ve proxy'leri veya veritabanı desteğini uygulamak için ek kitaplıklar.
Scrapy ise tüm meseleyle birlikte gelir. İstek göndermek, indirilen kodu ayrıştırmak, çıkarılan veriler üzerinde işlemler gerçekleştirmek ve kazınmış bilgileri depolamak için araçlar alırsınız. Uzantıları ve ara yazılımı kullanarak Scrapy'ye başka işlevler ekleyebilirsiniz, ancak bu daha sonra gelirdi.
Selenium ile otomatikleştirmek istediğiniz tarayıcı için bir web sürücüsü indirirsiniz. Veri depolama ve proxy desteği gibi diğer özellikleri uygulamak için üçüncü taraf modüllere ihtiyacınız olacaktır.
5. Dokümantasyon Kalitesi
Genel olarak, proje belgelerinin her biri iyi yapılandırılmıştır ve her yöntemi örnekler kullanarak açıklar. Ancak bir proje dokümantasyonunun etkinliği büyük ölçüde okuyucuya da bağlıdır.
Güzel Çorba'nın dokümantasyonu, web kazımaya yeni başlayanlar için çok daha iyidir. Şüphesiz Selenium ve Scrapy'nin ayrıntılı belgeleri vardır, ancak teknik jargon birçok yeni gelen kişiyi hazırlıksız yakalayabilir.
Programlama kavramları ve terminolojileri konusunda deneyimliyseniz, üç belgeden herhangi birini baştan sona okumak çocuk oyuncağı olacaktır.
6. Uzantılar ve Ara Yazılım Desteği
Scrapy, en genişletilebilir web kazıma Python çerçevesidir, nokta. Ara katman yazılımını, uzantıları, proxy'leri ve daha fazlasını destekler ve büyük ölçekli projeler için bir tarayıcı geliştirmenize yardımcı olur.
Temel olarak çerçevenin varsayılan mekanizmasına özel işlevsellik ekleyen kancalar olan Scrapy'de ara yazılımlar uygulayarak kusursuz ve verimli tarayıcılar yazabilirsiniz. Örneğin, HttpErrorMiddleware HTTP hatalarıyla ilgilenir, böylece örümcekler istekleri işlerken bunlarla uğraşmak zorunda kalmaz.
Ara yazılım ve uzantılar Scrapy'ye özeldir ancak ek Python kitaplıkları kullanarak Beautiful Soup ve Selenium ile benzer sonuçlar elde edebilirsiniz.
7. JavaScript Oluşturma
Selenium'un diğer web kazıma kitaplıklarını geride bıraktığı bir kullanım durumu vardır ve bu, JavaScript etkin web sitelerini kazımadır. Scrapy ara katman yazılımlarını kullanarak JavaScript öğelerini kazıyabilseniz de, Selenium iş akışı en kolay ve kullanışlı olanıdır.
Bir web sitesini yüklemek, tıklamalar ve düğmelere basarak web sitesiyle etkileşimde bulunmak için bir tarayıcı kullanırsınız ve ne zaman ekrana kazımak için ihtiyacınız olan içeriğe sahipsiniz, Selenium'un CSS ve XPath'ını kullanarak ayıklayın seçiciler.
Güzel Çorba, XPath veya CSS seçicilerini kullanarak HTML öğelerini seçebilir. Yine de, bir web sayfasında JavaScript ile oluşturulmuş öğeleri kazımak için işlevsellik sunmuyor.
Web Scraping Python ile Kolaylaştı
İnternet ham verilerle dolu. Web kazıma, bu verilerin iyi bir şekilde kullanılabilecek anlamlı bilgilere dönüştürülmesine yardımcı olur. Bir web sitesini JavaScript ile kazımak istiyorsanız veya verileri çıkarmadan önce ekrandaki bazı öğeleri tetiklemeniz gerekiyorsa, Selenyum büyük olasılıkla en güvenli seçeneğinizdir.
Scrapy, ister küçük bir paletli ister güncellenmiş veriler için interneti tekrar tekrar tarayan büyük ölçekli bir kazıyıcı yazmak isteyin, tüm ihtiyaçlarınız için tam teşekküllü bir web kazıma çerçevesidir.
Acemi iseniz veya hızlı bir şekilde bir kazıyıcı geliştirmeniz gerekiyorsa Güzel Çorba'yı kullanabilirsiniz. Hangi çerçeveyi veya kitaplığı seçerseniz seçin, Python ile web kazımayı öğrenmeye başlamak kolaydır.