16 Şubat 2016 Salı

Web Scraping Çalışmasından Notlar

Şubat ayı için belirlediğim yol haritasında 1.durak olan Web Scraping çalışmasını da  Harvard Üniversitesi Data Science ders notu üzerinden geçtim. Çalışma esnasında dikkatimi çeken ve önemli notları da sizlerle paylaşmak istiyorum.Ders notlarında yer alan örnekler Python 2 ile yazılmış.Eğer benim gibi Anaconda Python 3.4 dağıtımını kurduysanız bu örneklerde yer alan kodlar sizin için çalışmayacaktır.Ufak tefek değişiklikler yaparak bu açığın üstesinden gelebilirsiniz.İmport urllib2 yerine "import urllib" ve source = urllib2.urlopen(url). yerine ise "source = urllib.request.urlopen(url).read()"    yazdığınızda kodlar çalışır hale gelecektir.(Atladığım yer olabilir lütfen hatırlatınız)

Ders notlarında ayrıca  gerçek dünya uygulamalarına da yer verilmiş.Uygulamaların birinde New York Times gazetesinde geçen haberlerin Twitter üzerinde yarattığı etkiyi coğrafi açıdan göstermek amacıyla  bir web scraping çalışması gerçekleştirilmiş ve neticesinde güzel bir sunumla elde edilen veri görselleştirilmiş.Daha çok dikkatimi çeken diğer bir uygulamada Twitter'da  atılan bir tvit üzerinden twitter kullanıcılarının duygusallık analizini gerçekleştiren  bir çalışmaydı.Mesela Turkey diye sorgu attığımızda bugün için Twitter üzerinden atılan 303 tvit üzerinden duygu kümelenmesinin alert ve excited  tarafına yakın olduğunu aşağıda yer alan ss de  görebiliyoruz.



Burada yapılan iş ilk önce sorgulanan  kelimeye göre  atılan tvitlerin tespit edilmesi ; sonrasında web scraping yöntemiyle ve api kullanımıyla bu tvitlerin toplanması ve son aşamada elde edilen tvitlerde yer alan anahtar kelimelerin duygu tarifini yapan  ilgili tanımlarla sözlükte  eşleştirilmesi ve sonucun görsel hale getirilmesi olarak gerçekleşiyor.


Python'da web scraping işlemlerini urllib kütüphanesiyle gerçekleştirebileceğiniz gibi yanında bu işi daha da kolay getiren ve kod yazımını azaltan BeautifulSoup  kütüphanesinden de yararlanabilirsiniz.En çok kullanılan fonksiyonlardan birisi de findAll.Bu fonksiyon ile web sitesinde elde etmek istediğiniz verinin html etiketini inspect element ile tespit ettikten sonra yapmanız gereken findAll fonksiyonunu tespit ettiğiniz etiket ile çağırmak oluyor.Bu fonksiyon sayesinde web sitelerinden izin ve gizlilik kurallarını aşmamak kaydıyla istediğiniz veriye otomatik olarak erişebilir ve diskinize depolayabilirsiniz.Bu iş özellikle internetten veri toplama işi yapan kişiler için çok büyük bir faydadır.Saatlerinizi alabilecek  bir tablo hazırlığını  python'da kod yazarak dakikalar içinde bitirebilirsiniz.Bu gerçekten çok büyük bir kolaylıktır.




Hiç yorum yok:

Yorum Gönder