En İyi Filmler ve Şovlar için Web Scraping IMDB

Yayınlanan: 2020-12-08
İçindekiler gösterisi
IMDB Verilerinin Web Scraping'i Nasıl Yapılır?
Çıkardığımız Veri Noktaları
Kısıtlamalar ve En İyi Uygulamalar

Tüm zamanların en iyi 250 filminin hangileri olduğunu bilmek ister misiniz? Ya da şimdiye kadar küçük ekranlara gelen en iyi komedi şovları? Filmler ve şovlar dünyasıyla ilgili tüm bu tür cevaplar, incelemeler, derecelendirmeler ve önemsiz şeyler için, dünyanın her yerinden insanlar bu tür bilgilerin çevrimiçi bir veritabanı olan IMDB'yi kullanır. Bilgiler hayranlar tarafından güncellenirken, veritabanının kendisi Amazon'un bir yan kuruluşuna aittir ve işletilmektedir. İlk olarak 1990 yılında bir veri tabanı olarak oluşturulmuş ve 1993 yılında web'e taşınmıştır. Web sitesindeki bilgilere herkes erişebilirken, gerçekleri düzenlemek veya yorum eklemek istiyorsanız kayıt olmak zorunludur. Bu blogda, Python kullanılarak web kazıma IMDB verilerinin nasıl yapıldığına bir göz atacağız.

Hem filmler hem de küçük ekran gösterileri için güncellenen çeşitli veri noktalarının yanı sıra IMDB, kullanıcılarının derecelendirme eklemesine de olanak tanır ve bu derecelendirmeler, film meraklıları ve diğerleri tarafından izleme listelerini oluşturmak için kullanılan çoklu listelerin temelini oluşturur. IMDB, verilerini sorgulamak için bir API sağlamazken, verileri metin biçiminde indirmenize izin verir. Verileri bir DIY kodu kullanarak da kazıyabilirsiniz.

IMDB Verilerinin Web Scraping'i Nasıl Yapılır?

IMDB'den 2 takım veriyi kazıyacağız

a). IMDB'nin en iyi 250 filmi

b). IMDB'nin en iyi 250 televizyon programı

Bu listelerdeki her film veya şov için belirli veri noktalarını kazıyacağız. Tüm verileri bir kerede kazımak istemeyebilirsiniz ve bu nedenle, yalnızca ilk n sonucu çıkarmak için bir parametrenin değerini değiştirme seçeneği sağladık.

Başlamadan önce BeautifulSoup bağımlılığı ve bir metin düzenleyici ile birlikte Python3.7 veya daha yüksek bir sürüme ihtiyacınız olacak. Ardından aşağıda verilen kodu python komutunun kendisini kullanarak çalıştırabilirsiniz. Kodda daha önce bahsettiğimiz iki listenin bağlantılarını sabit kodladığımız için kullanıcı girişi gerekmez.

Kodda 3 özel fonksiyonumuz var

a). get_top_rated_imdb_hits- Yürütmenin başladığı yer burasıdır. Bu fonksiyona girdi olarak ilgili listenin URL'sini geçiyoruz. Film listesi URL'si veya TV şovları listesi URL'si olabilir. Ayrıca JSON sonucunu istediğimiz dosyanın adını ve istediğimiz en iyi sonuçların sayısını da iletiyoruz. Web sayfasının kendisinde bulunan film adı ve derecelendirmeler gibi belirli veri noktalarını alırız ve sonra ekstra veri noktaları getirmek için film/şov belirli URL'sini atlayarak get_extra_details işlevini çağırırız.

b). get_web_page_content- Bu işlev, kendisine iletilen URL'nin HTML içeriğini getirmek ve onu kolayca ayrıştırılabilen bir BeautifulSoup nesnesine dönüştürmek için kullanılır. Bu nesne, bu işlevin döndürdüğü şeydir.

c). get_extra_details- Bu işlev, özet, en iyi yıldızların adı ve sıralamalı liste web sayfasında bulunmayan yönetmen bilgileri gibi daha fazla ayrıntı getirmek için get_top_rated_imdb_hits işlevi tarafından kendisine aktarılan film veya şova özel URL'yi kullanır.

IMDB Web Kazıma

IMDB Web Kazıma

Gördüğünüz gibi, get_top_rated_imdb_hits işlevini bir kez filmlerin URL'si ve bir kez de TV şovlarının URL'si ile iki kez çağırdık. Her iki listede de sadece ilk iki adayın verilerini istediğimiz için sayımı da 2 olarak geçtik. Bu kod çalıştığında, dizininizde oluşturulan iki dosya göreceksiniz: “movies.json” ve “tv_shows.json”.

Çıkardığımız Veri Noktaları

Her film veya TV şovu için bu veri noktalarını çıkardık.

a). Belirli şov / film için IMDB bağlantısı

b). Rütbe

c). İsim

d). Yıl

e). Derecelendirmeler

f). Özet

g). Müdür

h). yazarlar

i). Yıldızlar

Unutulmaması gereken bir şey, her film veya şov için tüm veri noktalarının mevcut olmayabileceği, ancak hangisinin mevcut olduğu, hurdaya ayrılacağıdır. Aşağıdaki JSON, yukarıdaki kodu çalıştırarak elde ettiğimiz IMDB'deki en iyi 250 film listesindeki ilk 2 filmi göstermektedir.

IMDB Web Kazıma

Veri

Verileri olduğu gibi kazıdık ve verilerin kendisinde minimum değişiklik yaptık. Veri noktalarını daha kullanışlı hale getirmek için verileri daha fazla temizleyebilirsiniz. Birkaç örnek olurdu

a). Yıldaki parantezlerin çıkarılması.

b). Derecelendirmeleri 2 ayrı veri noktasına, derecelendirmelere ve derecelendirmelerini gönderen kişilerin sayısına bölme.

Aşağıdaki JSON, ikinci web sayfasından çıkardığımız en iyi 2 TV şovunu göstermektedir. Bu tür web kazıyıcıların çoğu orada mevcut olduğundan. Farklı TV Şovları için IMDB verilerini web sitelerinden nasıl kazıyabileceğimize bir göz atalım. Aşağıdaki kod, nasıl yapılabileceğinin ayrıntılı bir açıklamasıdır.

Veri Kazıma

Her listeden sadece 2 tane çıkarmış olsak da. Kodun 250 gösterinin veya filmin tümü için çalışmasına izin verebilir ve büyük bir JSON dosyası oluşturabilirsiniz. Hatta ayıkladığınız verileri bir veritabanında saklayabilirsiniz. Ancak kodu bu kadar çok bağlantıda çalıştırmak için. Web IMDB verilerini kazırken bazı en iyi uygulamaları izlemeniz ve bazı kısıtlamaları göz önünde bulundurmanız gerekecektir.

Kısıtlamalar ve En İyi Uygulamalar

Bu kodu çalıştırıp “nos” değerini 250 olarak değiştirdiyseniz ve kodu 250 film ve TV şovunun tamamında çalıştırdıysanız. Web sitesinin IP'nizden otomatik trafik algılaması ve sonunda engellenmeniz için yüksek bir şans var. IP döndürme gibi araçlar kullanmanız gerekecek. Ayrıca, her bir URL'nin HTML içeriğini kazıma arasında birkaç saniyelik bir bekleme süresi oluşturabilirsiniz.

İçeriğinin çoğu gönüllüler tarafından oluşturulmuş olsa da, kazıdığınız verilere gelince. Verilerin ticari kullanımına ilişkin belirli kısıtlamalar olabilir. Farklı web sayfalarından alınan verileri kullandığınız her yerde yönetmeliklere uymanız gerekir. Python kullanarak web'in IMDB verilerini kazıması budur.

Ancak, birisinin verilerle ilgilendiği ve sizin temel iş modelinize odaklanabileceğiniz sorunsuz bir web kazıma deneyimi istiyorsanız, PromptCloud'daki ekibimiz hizmetinizdedir. Her şeyle ilgilendiğimiz DaaS çözümümüzle gurur duyuyoruz. Kazıma işleminden kazınmış verilere erişmeye kadar.

Yukarıdaki içeriği beğendiyseniz, bunu da okumak isteyeceğinizden eminiz . Lütfen değerli görüşlerinizi aşağıdaki yorumlar bölümünde bize bırakın.