Cara Mengikis Data Youtube menggunakan Python

Diterbitkan: 2019-05-29
Daftar Isi menunjukkan
Mengapa mengikis data dari Youtube?
1. Temukan kata kunci yang paling disukai
2. Bandingkan Tagar
3. Temukan saluran paling populer
4. Melacak popularitas saluran
5. Merekam suka, tidak suka, dan tampilan di video
Mari kita mulai dengan kode:
Kode perayap YouTube menjelaskan:
Poin data mana yang dapat Anda ambil dari Youtube?
JUDUL
NAMA SALURAN
JUMLAH TAMPILAN
SUKA
tidak suka
JUMLAH BERLANGGANAN
HASHTAG
Kesimpulan
Butuh bantuan untuk mengekstrak data web?

YouTube telah muncul sebagai pemenang yang jelas dalam hal situs berbagi video, dan meskipun dikatakan bernilai lebih dari $ 160 miliar, jumlah orang yang mencari nafkah melalui situs web juga sangat besar. Pembuat konten ini bergabung dengan program kemitraan YouTube dan dengan memonetisasi konten mereka menghasilkan banyak uang melalui iklan.

Mengapa mengikis data dari Youtube?

Data YouTube dapat berguna untuk berbagai kasus penggunaan, seperti:

1. Temukan kata kunci yang paling disukai

Katakanlah Anda menjalankan pencarian untuk menemukan video teratas yang ditampilkan di YouTube untuk beberapa kata tertentu. Sekarang, jika Anda mengikis suka, tidak suka, tampilan, dan judul dari masing-masing video itu, Anda akan dapat membuat daftar kata kunci yang ketika dimasukkan ke dalam judul YouTube Anda, dapat menghasilkan pendapatan yang lebih baik.

2. Bandingkan Tagar

Dengan membandingkan suka dan penayangan pada video dengan tagar tertentu, Anda bisa mendapatkan ide yang lebih baik tentang tagar mana yang akan digunakan pada video Anda untuk membuatnya lebih populer, atau untuk memahami tagar mana yang lebih cocok dengan judul video Anda.

3. Temukan saluran paling populer  

Mengekstrak video teratas di YouTube dapat membantu Anda membuat grafik frekuensi nama saluran yang muncul, sehingga memungkinkan Anda menemukan saluran teratas yang disukai orang. Ini, pada gilirannya, juga akan membantu Anda memahami topik mana yang paling populer di kalangan pemirsa YouTube.

4. Melacak popularitas saluran

Dengan mengekstrak data video yang baru diunggah dari saluran YouTube tertentu, Anda akan dapat menemukan apakah popularitas saluran meningkat atau menurun, atau stagnan.

5. Merekam suka, tidak suka, dan tampilan di video

Anda dapat membuat grafik dengan waktu di sumbu x dan suka, tidak suka, atau penayangan di sumbu y, dengan menggores data dari video tersebut secara berkala.

Mari kita mulai dengan kode:

Karena kami telah menjelaskan proses instalasi dan inisialisasi di artikel “Cara mengikis data dari” sebelumnya seperti ini , kami harap Anda siap dengan langkah-langkah ini.

Untuk menjalankan kode, gunakan perintah python lalu masukkan URL video YouTube saat diminta.

ekstrak data youtube
Fig: Menjalankan kode dari skrip shell.

Salin kode yang diberikan di bawah ini ke dalam file dan beri nama sebagai youtubeDataExtractor.py (walaupun Anda sebenarnya bisa memberikan nama file apa pun, asalkan diakhiri dengan '.py').

[bahasa kode="python"]

#!/usr/bin/python
# -*- koding: utf-8 -*-

impor urllib.request
impor urllib.parse
impor urllib.error
dari bs4 impor BeautifulSoup
impor ssl
impor json
impor ast
impor json
impor os
dari urllib.request Permintaan impor, urlopen

# Untuk mengabaikan kesalahan sertifikat SSL

ctx = ssl.create_default_context()
ctx.check_hostname = Salah
ctx.verify_mode = ssl.CERT_NONE

# Masukan dari pengguna

url = input('Masukkan Url Video Youtube-')

# Membuat situs web percaya bahwa Anda mengaksesnya menggunakan browser mozilla

req = Permintaan(url, header={'User-Agent': 'Mozilla/5.0'})
halaman web = urlopen(req).read()

# Membuat objek BeautifulSoup dari halaman html untuk memudahkan ekstraksi data.

sup = BeautifulSoup(halaman web, 'html.parser')
html = sup.prettify('utf-8')
video_details = {}
other_details = {}

untuk span di soup.findAll('span',attrs={'class': 'watch-title'}):
video_details['TITLE'] = span.text.strip()

untuk skrip di soup.findAll('script',attrs={'type': 'application/ld+json'}):
channelDesctiption = json.loads(script.text.strip())
video_details['CHANNEL_NAME'] = channelDesctiption['itemListElement'][0]['item']['name']

untuk div di soup.findAll('div',attrs={'class': 'watch-view-count'}):
video_details['NUMBER_OF_VIEWS'] = div.text.strip()

untuk tombol di soup.findAll('button',attrs={'title': 'I like this'}):
video_details['LIKES'] = button.text.strip()

untuk tombol di soup.findAll('button',attrs={'title': 'Saya tidak suka ini'}):
video_details['DISLIKES'] = button.text.strip()

untuk span di soup.findAll('span',attrs={'class': 'yt-subscription-button-subscriber-count-branded-horizontal yt-subscriber-count'}):
video_details['NUMBER_OF_SUBSCRIPTIONS'] = span.text.strip()

hashtag = []
untuk span di soup.findAll('span',attrs={'class': 'standalone-collection-badge-renderer-text'}):
untuk di span.findAll('a',attrs={'class': 'yt-uix-sessionlink'}):
hashtags.append(a.text.strip())
video_details['HASH_TAGS'] = hashtags

dengan open('output_file.html', 'wb') sebagai file:
file.tulis(html)

dengan open('data.json', 'w', encoding='utf8′) sebagai outfile:
json.dump(video_details, outfile, sure_ascii=False,indent=4)

print ('———- Ekstraksi data selesai. Periksa file json.———-')
[/kode]

Setelah Anda menjalankan kode, Anda akan menemukan JSON yang dibuat di direktori Anda saat ini, dengan nama data.json. Kami menjalankan kode untuk beberapa video musik populer dan berikut adalah JSON yang terkait dengannya-

1. Guntur oleh Imagine Dragons –

[bahasa kode="python"]

{
“JUDUL”: “Bayangkan Naga – Guntur”,
“CHANNEL_NAME”: “BayangkanNagaVEVO”,
“NUMBER_OF_VIEWS”: “1.182.556.781 tampilan”,
“SUKA”: “6.693.559”,
“TIDAK SUKA”: “337.823”,
“NUMBER_OF_SUBSCRIPTIONS”: “17jt”,
“HASH_TAGS”: []
}

[/kode]

2. Dalam perasaanmu oleh Drake

[bahasa kode="python"]
{
“TITLE”: “Drake – In My Feelings (Lirik, Audio) “Kiki Do you love me””,
“CHANNEL_NAME”: “Kesatuan Khusus”,
“NUMBER_OF_VIEWS”: “278.121.686 tampilan”,
“SUKA”: “2.407.688”,
“TIDAK SUKA”: “114.933”,
“NUMBER_OF_SUBSCRIPTIONS”: “614K”,
“HASH_TAGS”: [
“#InMyFeelings”,
"#Itik jantan",
"#Kalajengking"
]
}
[/kode]

Kode perayap YouTube menjelaskan:

Seperti biasa, pertama-tama kami mengikis kode HTML dari halaman web dan menyimpannya ke file di direktori lokal kami, sehingga kami dapat menganalisisnya dan menemukan titik data yang dapat diekstraksi dengan mudah dan juga berharga. Sebagian besar studi untuk titik data di halaman HTML harus dilakukan secara manual, dengan mencari kata kunci atau nilai tertentu dan menemukan tempat kemunculannya.

Kami telah menggunakan BeautifulSoup (BS4) untuk mengekstrak data dari tempat tertentu dalam kode HTML-

  1. Elemen jenis rentang yang memiliki kelas sebagai 'judul tontonan' adalah tempat Anda dapat menemukan Judul video.
  2. Elemen skrip yang memiliki jenis 'application/ld+json' berisi nama saluran.
  3. Elemen div dengan jumlah tontonan-tampilan kelas, akan membantu Anda mendapatkan jumlah penayangan video YouTube tersebut.
  4. Elemen tombol dengan judul 'Saya suka ini' memiliki hitungan jumlah suka pada video tertentu.
  5. Mirip dengan poin di atas, elemen tombol dengan judul 'Saya tidak suka ini', memiliki hitungan jumlah tidak suka pada video tertentu.
  6. Elemen rentang dengan kelas 'yt-subscription-button-subscriber-count-branded-horizontal yt-subscriber-count' adalah elemen yang dapat Anda gunakan untuk mengekstrak jumlah subscriber saluran yang telah mengupload video tersebut.
  7. Menemukan tagar yang terkait dengan video tertentu sedikit lebih rumit daripada titik data lainnya. Pertama, Anda harus mengekstrak semua span dengan kelas 'standalone-collection-badge-renderer-text', dan dari sana kita harus mengekstrak semua a-tag dengan class- 'yt-uix-sessionlink'. Dengan mengekstrak teks di semua tag-a, ke dalam array, Anda akan dapat membuat daftar tagar. Array ini dapat ditambahkan ke json hasil di bawah kunci tertentu yang disebut 'HASH_TAGS', untuk mendapatkan informasi dalam format terstruktur di hasil akhir json.

Poin data mana yang dapat Anda ambil dari Youtube?

Dengan menggunakan kode yang diberikan di atas, Anda dapat mengikis titik data tertentu dari video YouTube apa pun, selama Anda memiliki URL-nya. Hanya bidang hashtag yang mungkin tidak ada di video tertentu karena ini bukan bidang wajib di halaman video YouTube. Titik-titik data yang dapat digores adalah sebagai berikut-

JUDUL

Titik data yang paling penting adalah yang kita ekstrak di awal. Judul video berisi banyak informasi, dan sangat penting, yang tanpanya semua poin data lainnya tidak akan masuk akal sama sekali.

NAMA SALURAN

Tepat setelah judul, nama Saluran penting untuk mengaitkan judul dengan pembuatnya- yaitu, siapa yang membuat konten. Di YouTube, video dikaitkan dengan nama Saluran mereka dan bukan oleh pembuatnya karena dalam banyak kasus, lebih dari satu orang bekerja pada video dari satu saluran.

JUMLAH TAMPILAN

Metrik paling sederhana untuk memahami jangkauan video adalah dengan menemukan jumlah penayangan yang telah diterimanya. Ini juga merupakan metrik terpenting yang terkait dengan video YouTube dan dalam banyak hal, metrik ini menentukan berapa banyak pendapatan yang akan diperoleh pembuat video.

SUKA

Suka pada video YouTube, hanyalah persentase pemirsa yang cukup menyukai video tersebut untuk benar-benar mengeklik tombol jempol ke atas di bawah video.

tidak suka

Mirip dengan poin data di atas, jumlah tidak suka akan menentukan jumlah klik pada tombol tidak suka untuk suatu video.

JUMLAH BERLANGGANAN

Sementara suka, tidak suka, dan penayangan melukiskan gambaran popularitas satu video YouTube, jumlah langganan memberikan gambaran yang lebih baik tentang seberapa populer saluran YouTube itu. Untuk saluran YouTube, kami tidak memiliki metrik lain. Jumlah langganan adalah satu-satunya titik data tunggal dan semakin tinggi, semakin populer saluran YouTube yang dimaksud.

HASHTAG

Tagar telah menjadi cara populer untuk membuat konten Anda dapat dicari di berbagai media. Baik itu posting Facebook atau gambar Instagram, orang menggunakan tagar dengan berbagai jenis konten online hari ini sehingga berbagai jenis konten dapat dikaitkan bersama. Itulah alasan mengapa 'hashtag trending' menjadi hal yang populer saat ini.

Kesimpulan

Meskipun kode yang diberikan hanya dapat mengekstrak beberapa titik data tertentu dari halaman video YouTube, menjelajahi halaman HTML dari halaman YouTube yang berbeda dapat membantu Anda menemukan lebih banyak titik data yang terjadi di bawah elemen HTML yang serupa. Pengikisan web tidak memberikan aturan keras dan cepat karena situs web itu sendiri terus berubah. Oleh karena itu, mempelajari data apa yang harus dikikis dan bagaimana cara mengikis adalah sesuatu yang dapat dikumpulkan hanya dari pengalaman dengan mengikis halaman web yang berbeda yang memiliki format data yang berbeda.


Butuh bantuan untuk mengekstrak data web?

Dapatkan data bersih dan siap pakai dari situs web untuk aplikasi bisnis melalui layanan pengikisan web kami.

Ups! Kami tidak bisa menemukan formulir Anda.

Penafian: Kode yang disediakan dalam tutorial ini hanya untuk tujuan pembelajaran. Kami tidak bertanggung jawab atas cara penggunaannya dan tidak bertanggung jawab atas penggunaan kode sumber yang merugikan.