Ekşi Sözlük’ten Veri Kazıma – Bir Turizm Başlığı Örneği

4 0
Yaklaşık Okuma Süresi:2 Dakika, 14 Saniye

R programı özellikle istatistik ve veri madenciliği uygulamaları için oldukça gelişmiş seçenekler sunan bir program olma özelliği taşımaktadır. R programı aracılığıyla herhangi bir web sitesinde yer alan sayfalardaki verilerin belirli bir formatta indirilmesi mümkündür.
Bu kapsamda R programı kullanarak, turizm alanında akademik çalışma yapanlar için Ekşi Sözlük örneği üzerinden kısa bir veri madenciliği çalışmasını aktarma niyetindeyim.
Bu yazımda paylaşacağım kodlarla kısa bir süre içerisinde 1422 gönderi, bu gönderileri paylaşan kullanıcı isimleri ve tarihlerden oluşan bir tabloyu birkaç dakika içiresinde indirmeyi anlatmak istiyorum. Aslında veri madenciliği uygulamalarına hakim olmak, R programlama dilinde belirli bir düzeyin üzerinde bilgi birikimine sahip olmayı gerektirmektedir. Hatta veri madenciliği uygulamalarını web siteleri üzerinden gerçekleştirmek kimi zaman API kullanımını, kimi zaman HTML, CSS gibi farklı web programlama dillerini okumayı da içerir. Ayrıca bu sayfada paylaşılan kodlar farklı sitelerdeki farklı verileri elde etmek için doğrudan kullanılamaz. Aşağıda paylaşılan kodlar üzerinde ilgili sayfaya göre değişiklikler yapmak zorunludur. Bu yazımda hangi kısımların nasıl değiştirileceğine sadece kısa metrikler üzerinden değinmek istiyorum. Zira veri madenciliği ve özellikle veri kazıma/çekme işlemleri karmaşık ve can sıkıcı uğraşlar gerektirebilmektedir ve herhangi bir site için tek bir kod veya doğru yol mevcut değildir. Üstelik incelenen sitelerin alt yapılarında, kodlarında yapılacak revizyonlar veri çekme işleminin gerçekleşmesini engelleyebilir. Bazen sitelerin sunucuları verilerin çekilmesine izin vermeyebilir. Belki de en önemlisi bu verilerin kullanımıyla ilgili çeşitli yasal kısıtlar bulunabilir.

Bu hatırlatmaların ardından Ekşi Sözlük’te yer alan 2020 Turizm Krizi adlı başlıktaki 143 sayfada yer alan gönderileri çekmek istiyorum.

Verilerin Çekilmesi
Birinci Adım – Paketlerin Yüklenmesi ve Kütüphanelerin Çağırılması

#Kütüphanelerin çağırılması (Eğer kütüphaneler yüklü değilse, yüklemek gerekir)
library(rlang)
library(rvest)
library(purrr)
library(dplyr)

İkinci Adım – Temel Adresin Tanıtılması

#2023 Turizm Krizi Başlığını En çok beğenilen gönderiden en az beğenilen gönderiye doğru çekmek işlemi
temel_sayfa <- "https://eksisozluk.com/2020-turizm-krizi--5140567?a=nice&p=%d"

Üçüncü Adım – Sayfa Yapısının Tanıtılması

map_df(seq(from=1, to=143, by=1), function(i) {
  cat(".")
  syf <- read_html(sprintf(temel_sayfa, i))
  kullanicilar <- html_text(html_nodes(syf,'.entry-author'))
  gonderiler <- html_text(html_nodes(syf,'.content'))
  tarih <- html_text(html_nodes(syf,'.entry-date')) data.frame(kullanicilar, gonderiler, tarih, stringsAsFactors = FALSE) })-> eksi_turizm

Verilerin Tabloya Aktarılması

dplyr::glimpse(eksi_turizm)
write.csv2(eksi_turizm, "eksi.csv")

Bu işlemlerin tamamlanmasının ardından Kullanıcı Adı, Gönderi ve Gönderi Tarihinden oluşan üç değişkene sahip bir csv dosyası elde edilecektir. Elde edilen dosyayı indirmek için bu bağlantıyı kullanabilirsiniz.

Ayrıca paylaşılan gönderiler ve tarihlerle ilgili farklı analizleri R programı üzerinden devam ettiren ikinci bir yazı kaleme alacağım. Fakat https://wordart.com/ aracılığıyla sadece yorumların olduğu kolonu kopyalayıp oldukça kolay bir şekilde kelime bulutu elde etmeniz de mümkün. Bunun bir örneğini gönderiye ekliyorum.

Subscribe
Bildir
guest
0 Yorum
Eskiler
En Yeniler Beğenilenler
Inline Feedbacks
View all comments