Skip to content

Latest commit

 

History

History
43 lines (22 loc) · 4.99 KB

web_scraping.md

File metadata and controls

43 lines (22 loc) · 4.99 KB

Web Scraping Nedir?

Web scraping, İnternet'ten bilgi toplama sürecidir. Hatta en sevdiğiniz şarkının sözlerini kopyalayıp yapıştırmak bile bir tür web scraping'dir! Ancak "web scraping" terimleri genellikle otomasyon içeren bir süreci ifade eder. Bazı web siteleri, otomatik scraper'ların verilerini toplamasını istemezken, bazıları ise bu durumu önemsemez.

Eğitim amaçlı ve saygılı bir şekilde bir sayfayı kazıyorsanız, muhtemelen herhangi bir sorunla karşılaşmazsınız. Yine de, büyük ölçekli bir projeye başlamadan önce, herhangi bir Hizmet Kullanım Şartlarını ihlal edip etmediğinizi araştırmak iyi bir fikirdir.

Web Scraping'in Nedenleri

Örneğin, hem çevrimiçi hem de gerçek hayatta bir sörfçüsünüz ve iş arıyorsunuz. Ancak, sadece herhangi bir iş değil. Sörfçü zihniyetiyle, mükemmel fırsatın yolunuza çıkmasını bekliyorsunuz!

Tam da istediğiniz türde işleri sunan bir iş sitesi var. Ne yazık ki, yeni bir pozisyon ara sıra ortaya çıkıyor ve site bir e-posta bildirim servisi sunmuyor. Her gün siteyi kontrol etmeyi düşünüyorsunuz, ancak bu, zamanınızı geçirmenin en eğlenceli ve üretken yolu gibi görünmüyor.

Neyse ki, dünya başka yollar sunuyor! İş sitesine her gün bakmak yerine, iş arama sürecinizin tekrar eden kısımlarını otomatize etmek için Python kullanabilirsiniz. Otomatik web scraping, veri toplama sürecini hızlandırmanın bir çözümü olabilir. Kodunuzu bir kez yazarsınız ve istediğiniz bilgileri birçok kez ve birçok sayfadan alır.

Buna karşılık, istediğiniz bilgileri manuel olarak almaya çalıştığınızda, özellikle düzenli olarak yeni içerikle güncellenen web sitelerinden büyük miktarda veriye ihtiyacınız varsa, çok zaman harcayabilirsiniz. Manuel web scraping çok zaman alabilir ve tekrar gerektirebilir.

Web'de çok fazla bilgi var ve sürekli yeni bilgiler ekleniyor. Bu bilgilerin en azından bir kısmı ilginizi çekebilir ve çoğu, alınmak üzere dışarıda bulunur. İster gerçekten iş arıyor olun, ister sevdiğiniz sanatçının tüm şarkı sözlerini indirmek isteyin, otomatik web scraping hedeflerinize ulaşmanıza yardımcı olabilir.

Web Scraping'in Zorlukları

Web, birçok kaynaktan organik olarak büyümüştür. Birçok farklı teknolojiyi, tarzı ve kişiliği birleştirir ve bugüne kadar büyümeye devam eder. Başka bir deyişle, Web karmaşık bir yapıya sahiptir! Bu nedenle, web'i kazırken bazı zorluklarla karşılaşabilirsiniz:

  • Çeşitlilik: Her web sitesi farklıdır. Genel yapıları tekrar etse de, her web sitesi benzersizdir ve istediğiniz bilgileri çıkarmak için kişisel muamele gerektirir.

  • Dayanıklılık: Web siteleri sürekli değişir. Yepyeni bir web scraper oluşturduğunuzu ve ilginizi çeken kaynaktan istediğinizi otomatik olarak seçtiğinizi düşünün. İlk defa scriptinizi çalıştırdığınızda kusursuz çalışır. Ancak, kısa bir süre sonra aynı scripti çalıştırdığınızda, uzun ve yıldırıcı hata izleriyle karşılaşırsınız!

Kararsız scriptler, birçok web sitesinin aktif geliştirme aşamasında olduğu gerçek bir senaryodur. Site yapısı değiştikten sonra, scraperınız site haritasını doğru bir şekilde gezemeyebilir veya ilgili bilgileri bulamayabilir. İyi haber şu ki, web sitelerindeki birçok değişiklik küçük ve artımlı olur, bu nedenle scraperınızı yalnızca minimal ayarlamalarla güncelleyebilirsiniz.

Ancak, İnternet'in dinamik olduğunu unutmayın; oluşturacağınız scraper'lar muhtemelen sürekli bakım gerektirecektir. Ana scriptinizin bilginiz dışında bozulmamasını sağlamak için düzenli aralıklarla scraping testleri çalıştıracak şekilde sürekli entegrasyon kurabilirsiniz.

Web Scraping'e Alternatif: API'lar

Bazı web site sağlayıcıları, verilerine önceden tanımlı bir şekilde erişmenizi sağlayan uygulama programlama arayüzleri (API'lar) sunar. API'lar kullanarak, HTML'i ayrıştırmaktan kaçınabilir ve bunun yerine JSON ve XML gibi formatlar kullanarak verilere doğrudan erişebilirsiniz. HTML, temelde içeriği kullanıcılara görsel olarak sunmanın bir yoludur.

Bir API kullandığınızda, süreç genellikle web scraping ile veri to

plamaktan daha kararlıdır. Çünkü geliştiriciler, API'ları insan gözleri yerine programlar tarafından tüketilmek üzere oluşturur.

Bir sitenin ön yüz sunumu sık sık değişse de, bu tür bir değişiklik web sitesinin API yapısını etkilemez. Bir API'nin yapısı genellikle daha kalıcıdır, bu da onu sitenin verilerinin daha güvenilir bir kaynağı yapar.

Ancak, API'lar da değişebilir. Hem çeşitlilik hem de dayanıklılık zorlukları, API'lara da aynı şekilde uygulanır. Ek olarak, sağlanan belgeler kalitesizse, bir API'nin yapısını kendiniz incelemek çok daha zordur.

API'lar kullanarak bilgi toplama yaklaşımı ve araçları bu eğitimin kapsamı dışındadır. Daha fazla bilgi için Python'da API Entegrasyonu konusuna bakabilirsiniz.