Tekrar hoş geldiniz.
Az önce Hacker News'ten tüm verileri aldık.
En azından talep ettiğimiz ve burada gördüğümüz sayfada tüm bu HTML bilgilerini aldık, ki
bu harika.
Bu sadece elimize ulaşan bir ip.
Güzel çorbanın yapmamıza izin verdiği şey, Parse adı verilen bir şey yapmaktır.
Yani, bunu bir dizeden manipüle edebileceğimiz ve kullanabileceğimiz gerçek bir nesneye dönüştürmek için güzel çorba kullanabiliriz.
Bu verileri istediğimiz şekilde değiştirmek için Python kullanmak.
Size ne demek istediğimi göstereyim.
Artık güzel bir çorba kullanabiliriz.
Dokuyu kaldıracağım ve güzel çorba diyebiliriz.
Ve sonra burada, gördüğümüz gibi yanıt nokta metni olan tüm verilerle istediğimiz dizeyi verebilirim,
ki bu burada soldaki.
Ve sonra bunu ayrıştırırız, yani ona deriz ki, hey, bu verinin gerçekten kullanabileceğimiz bir HTML'ye dönüştürülmesi
gerekiyor.
Bunu güzel çorba ile yapmanın yolu basitçe HTML nokta ayrıştırıcı demek.
Bu da güzel çorbaya şunu söyler: Hey, bu HTML ve bunu ayrıştırmanı istiyorum.
Bu yüzden onu bir dizeden gerçekten kullanabileceğimiz bir şeye dönüştürün.
Bu da çorba nesnesi dediğimiz şeyi oluşturur.
Bu yüzden onu bir çorba değişkenine atayacağım, ancak istediğim gibi adlandırabilirim.
Şimdi, bazılarınız bunun gerçekte ne olduğunu soruyor olabilir.
Bunu yapmak zorunda olmamızın nedeni, beautiful soup'un XML adı verilen başka bir veriyi de ayrıştırmasıdır.
Ve yine, dokümantasyon web sitesine gidersek, güzel çorba dokümantasyonuna gidelim ve sadece
bir HTML nokta ayrıştırıcısını arayalım.
Burada, yerleşik olarak gelen HTML ayrıştırıcı gibi farklı ayrıştırıcılara sahip olabileceğimizi görüyorsunuz,
ancak aynı zamanda XML ayrıştırıcı ve yükleyebileceğimiz diğer ayrıştırıcılar da var.
Bu nedenle, ne zaman bir sorunuz olursa, her zaman belgelere başvurun ve sadece F'yi kontrol edin; ihtiyacınız
olan her türlü ekstra bilgiyi bulacaksınız.
Zamanın %99'unda HTML ayrıştırıcısını varsayılan olarak kullanıyorsunuz.
Ama bu ne anlama geliyor?
Bu bizim için ne yaptı?
Bir bakalım.
Az önce oluşturduğumuz çorba nesnesini buraya yazdırırsam ve buraya kadar gidelim ve şimdilik bunu temizleyelim
ve python kodumuzu tekrar çalıştıralım.
Kazıyarak.
Tamam.
Burada çorba nesnesine sahip olduğumuzu görüyoruz.
Aslında biraz daha temiz.
Artık bir ip değil.
Burada tam HTML olduğunu görüyorsunuz.
Başlığımız var, başlığımız var, gövde etiketimiz var.
Yani aslında bunu sanki öyleymiş gibi manipüle edebiliriz.
Şey, bir python nesnesi.
Örneğin, sadece gövdeyi almak için soup dot body yapabilirim.
Eğer kaydedersem ve betiği tekrar çalıştırırsam.
Al bakalım.
Şimdi cesedi aldık.
Şunu açıklığa kavuşturayım ki görebilelim.
Tekrar çalıştıracağım.
Şunu görüyor musun?
Şimdi elimizde sadece ceset var.
Nokta içeriği gibi bir şey bile yapabilirim.
Ve eğer bunu çalıştırırsam, bunu tekrar temizleyelim.
Tüm içeriği alıyorum ama burada liste şeklinde görüyorsunuz.
Harika.
Şimdi bu çorba nesnesini kullanarak gerçekten harika şeyler yapabiliriz.
Örneğin, diyelim ki bulmak istiyorum.
Tümünü bul yöntemini kullanarak, bu çorba nesnesinde sahip olduğumuz tüm div'leri bulun.
Kaydedersem, bunu temizleyelim ve betiğimizi çalıştıralım.
Ne kadar havalı değil mi?
Bu sayfada bulunan tüm geliştirme nesnelerini bir liste halinde alıyoruz.
Peki ya tüm bağlantılar?
Belki de tüm etiketleri almak istiyoruz.
Bunlar sitenin bağlantılarıdır.
Pekala, bir kez daha, bunu şimdilik temizleyelim ve betiğimizi çalıştıralım.
Ve şuna bak.
Tüm saldırılar elimizde.
Sayfadaki tüm bağlantılar bunlar.
Ve burada yapabileceğimiz farklı kullanımlar olduğunu hayal edebilirsiniz.
Burada başlık atarsam başlık diyebiliriz.
Çorba nesnemizin başlık etiketini alıyoruz.
Eğer a etiketi olan a here gibi bir şey yaparsam ve kodu tekrar çalıştırırsam.
İlk saldırıyı ben yapacağım.
Yapabileceğimiz bir başka şey de find (bul) adı verilen bir şeydir.
Yani her şeyi bulmak yerine ilk iş kuyuyu bulmak.
Yani yine, eğer bir tane bulursam ve buraya tıklarsam, aynı şeyi elde ettiğimi görürsünüz.
İlk öğeyi bulur.
Şimdi, bu neden yararlı?
Çünkü Hacker News web sitemize gidersek ve yapmak istediğim şey, diyelim ki buradaki ilk bağlantıya gitmek,
sağ tıklamak ve ardından incelemek.
Bu bize, sayfadaki tüm bilgileri veren bu HTML dom nesnesini verir.
Doğru.
Buna bakınca bundan emin oldum.
Bunun bir etiket olmasını isteyeceğim.
Bağlantı ve başlık burada.
Ama muhtemelen oy da isteyeceğim.
Doğru.
Yani buraya inmeye devam edersem.
Bu kısma.
İşte görüyorsunuz, skor burada.
Ve muhtemelen bunun kaç puan olduğuyla da ilgileneceğim.
Örneğin, burada ID özelliğini kullanabilirim, bu yüzden bu puanı kopyalayalım.
Hatta find gibi bir şey yapabilir ve bu değere eşit bir ID verebilirim.
Şimdi her şeyi temizleyelim ve dosyayı çalıştıralım.
Şunu görüyor musun?
Bu skor fikriyle tam olarak aynı etiketi alıyorum.
Böylece sayfa boyunca bu farklı öğeleri yakalamamıza izin vererek, istediğimiz verileri seçebiliriz.
Burada bir ara verelim ve bir sonraki videoda daha fazlasını öğrenelim.