Python İle Youtube Videolarının Bilgilerini Alma

0 809

Web scraping Türkçe ifade edecek olursak web kazıma, otomatik olarak internetten bilgi almanın bir yoludur. Hepimizin bildiği gibi YouTube, video görüntüleme sayıları, video yorumları, video beğenme sayıları vb. gibi tonlarca videoya sahip büyük bir veri kaynağıdır.

Bu yazımız da, YouTube aramalarından video bilgilerini ayıklamak için python’da web scraping yöntemini nasıl kullanılacağını öğreneceğiz. Video bilgilerinde, arama sonuçlarında görüntülenen görüntüleme sayısını ve video başlığını çıkaracağız.

Bir önceki yazımızda Python ile Youtube videolarını bilgisayara indirme yöntemini paylaşmıştık.

Buna başlamak için önce iki önemli kütüphane kurmamız gerekiyor. Birincisi, bir YouTube arama sonucundan yanıt almak için “reguest” , diğeri ise yanıtı html içeriğine ayrıştırmak için “Beatiful Soup” isimli kütüphanelerdir.

Bu iki kütüphaneyi sisteminiz yüklemek için alttaki komut satırlarını kullanabilirsiniz.

pip install requests
pip install -U bs4

Şimdi gerekli kütüphaneleri kurduk, başlayalım.

İlk adım olarak Kütüphaneleri içe aktarıyoruz.

YouTube’da her arama yaptığınızda, temel bir arama URL’si oluşturur ve ardından sorguyu tamamlamak için arama URL’nizi bu URL’ye ekler. YouTube’da “öğretmen” aradığımızı varsayalım. Temel arama URL’si ve sorgu aşağıdaki gibi tanımlanabilir.

base_url = 'https://www.youtube.com/results?search_query='
search_string = 'jn7net'
URL = base_url + search_string

Şimdi, “istek” kitaplığını kullanarak bu URL’deki verileri kazıyacağız.

Verileri kopyaladıktan sonra, güzel çorba kullanarak HTML’ye ayrıştıracağız ve arama sonucuyla sonuçlanan tüm video bilgilerini bulacağız. Belirli bilgileri çıkarmak için HTML verilerinden belirli bir sınıf kullanacağız.

Yukarıda kullanılan soup.findall () işlevi gerekli verileri verecektir, ancak kolayca anlaşılabilir hale getirmek için basit bir python betiği çalıştırmamız gerekir.

kodumuzun tamamı alttaki gibidir.

from bs4 import BeautifulSoup as bs
import requests
base_url = 'https://www.youtube.com/results?search_query='
search_string = 'jn7net'
URL = base_url + search_string
response = requests.get(URL)
page = response.text
soup = bs(page, 'html.parser')
vids = soup.findAll('a',attrs={'class':'yt-uix-tile-link'})
for v in vids:
    print(v['title'])
    v = str(v)
    views = ''
    try:
        indx = v.index('views')
        indx = indx - 2
        while v[indx] is not ' ':
            views = views + v[indx]
            indx = indx -1
        print(views[::-1])
    except:
        continue

Çıktı olarak bize alttaki gibi “JN7NET” youtube kanalındaki tüm videoların listesini döndürüyor.

youtube kanal videolarını listeleme

Python ve OpenCv kullanarak Youtube videolarını stream yapma konumuz, Python derslerimiz veya OpenCV ile hazırladığımız örneklerimiz ilginizi çekebilir.

Yorumlarınız bekliyoruz.

Cevap bırakın

E-posta hesabınız yayımlanmayacak.

Bu web sitesi deneyiminizi geliştirmek için çerezleri kullanır. Bununla iyi olduğunuzu varsayacağız, ancak isterseniz vazgeçebilirsiniz. Kabul etmek Mesajları Oku