Giter VIP home page Giter VIP logo

sozlukcrawler's Introduction

Sözlük Crawler

Ekşisözlük, itüsözlük, uludağsözlük gibi popüler sözlüklerden belirtilen başlıklardaki tüm girdileri alıp, veritabanına yazan crawler. Akademik amaçlar ile kullanılmak üzere geliştirildi ve dolayısıyla bütün sözlüğü taramak veya yeni bir google olma gibi bir amacı yoktur.

Temel olarak bu proje, bazı popüler başlıklarda yazılan girdilerde herhangi bir örüntü (pattern) olup olmadığı sorusunu cevaplamak üzere çıktı. Örneğin Recep Tayyip Erdoğan veya Türkiye'den siktir olup gitmek başlığına hangi ay/yıl daha fazla girdi yazıldı, insanlar en çok hangi kelimeleri kullandı, en çok girdi yazılan günlerin başka olaylar ile bağlantısı var mı gibi sorular aklıma gelen birkaç örnek. Veri ortaya çıktıktan sonra üzerine başka analizler yapmak da mümkün. Eğer ilginizi çekerse analiz fikirlerinizi e-posta atmaktan veya pull-request yapmaktan çekinmeyin.

Şunu da not etmem gerekir ki lütfen bokunu çıkarmadan kullanın. Bütün sözlüğü download edeceğim, istekler arasında hiç beklemeyeceğim ve bilerek/bilmeyerek DoS yapacağım diyenler varsa: sen kullanma ulan ayı!

Anahtar kelimeler: sözlük, crawl, scrape, ekşi, ekşisözlük, itüsözlük

İçindekiler

Desteklenen Sözlükler

Desteklenmiş Ancak Şu anda Çalışmayan Sözlükler

İtüsözlük tamamiyle yeni bir tasarıma geçti ve HTML'i doğal olarak değişti. Uludağ sözlük de crawler'in yazım tarihinden bu yana değişmiş görünüyor ve şu anki tarih itibariyle (17 Nisan 2015) çalışmıyor. Bu veya diğer sözlükler için katkıda bulunmanız beni sevindirecektir.

Taranan Alanlar

Veriler (girdiler) HTML taglerinden ayrılmış ve saf yazı halinde veritabanına eklenmekte. Bu alanlar şunlar:

  • Girdinin yazıldığı başlık
  • Yazı
  • Girdi yazarı (nick)
  • Tarih
  • Saat
  • Girdi numarası
  • Başlık numarası

Örnek

Kurulum

Sisteminizde öncesinde virtualenv paketinin olduğundan emin olun. Eğer yoksa başlamadan önce pip install virtualenv ile kurun. Aşağıdaki açıklayıcı komutlar ile projeyi kurun. Kullanım için bir sonraki bölüme bakın.

Not: Buradaki kurulum sadece Ubuntu 14.04 ile test edilmiştir. Ubuntunun diğer sürümleri ile çalışma olasılığı yüksektir ancak diğer dağıtımlarda paket isimleri değişebilir.

sudo apt-get install build-essential python-dev libffi-dev libmysqlclient-dev \
                     libssl-dev libxml2-dev libxslt1-dev

# ev dizinine gir
cd ~

# virtual environment olustur
virtualenv -p python2.7 sozlukcrawler.env
cd sozlukcrawler.env

# aktive et
source bin/activate

# projeyi getir
git clone https://github.com/eren/sozlukcrawler
cd sozlukcrawler

# bagimliliklari yukle
pip install -r requirements.txt

Kurulum yaptıktan sonra sozlukcrawl/settings.py dosyasından proje ayarlarını düzenleyin.

Veritabanı Ayarları

Proje ORM olarak SQLAlchemy kullanmakta, doğal olarak SQLAlchemy'nin desteklediği bütün veritabanları crawl edilen girdileri saklamak için tutulabilir.

Hızlı bir şekilde kullanmaya başlamanız için öntanımlı olarak sqlite kullanılıyor. Başka veritabanları kullanmak için öncelikle veritabanı ayarlarınızı yapın ve gerekli alanları düzenleyin.

### SQLite Herhangi bir veritabanı sunucusu kurmak istemiyor ve girdileri dosyaya yazmak istiyorsanız SQLite sürücüsünü kullanabilirsiniz. Bunun için settings.py dosyasında açıklamaları bulunan satır yorumlarını kaldırmanız yeterli.

DATABASE = {
    'drivername': 'sqlite',
    'database': 'db.sqlite'
}

MySQL

MySQL sunucunuzda gerekli kullanıcıyı, parolayı, ve veritabanını ekledikten sonra aşağıdaki ayarlar ile MySQL kullanımını etkinleştirebilirsiniz.

DATABASE = {
    'drivername': 'mysql',
    'host': 'localhost',
    'port': '3306',
    'username': 'sozlukcrawl',
    'password': 'sozlukcrawl',
    'database': 'sozlukcrawl'
}

### PostgreSQL Aynı şekilde kullanıcı adını ve veritabanını ayarladıktan sonra aşağıdaki ayarlar ile kullanabilirsiniz.

UYARI: PostgreSQL kullanmaya başlamadan önce psycopg2paketinin kurulu olması gerekmektedir. Bunu pip install psycopg2ile kurunuz.

DATABASE = {
    'drivername': 'postgresql+psycopg2',
    'host': 'localhost',
    'port': '5432',
    'username': 'sozlukcrawl',
    'password': 'sozlukcrawl',
    'database': 'sozlukcrawl'
}

Kullanım

Ekşi, İtü veya Uludağsözlükte ilgilendiğiniz başlığın kök linkini (sayfalama olmaksızın, birinci sayfa) crawler'a vermeniz yeterlidir. Aşağıdaki komutlar ile crawler'ı başlatabilirsiniz.

Öntanımlı olarak konsola sadece INFO logları düşecektir. Eğer yeterince geek iseniz ve debug çıktısı görmek istiyorsanız komutun sonuna -L DEBUG ekleyerek bu çıktıyı görebilirsiniz.

Ekşisözlük

scrapy crawl eksisozluk -a baslik="https://eksisozluk.com/recep-tayyip-erdogan--95281"

İtüsözlük

scrapy crawl itusozluk -a baslik="https://www.itusozluk.com/goster.php/recep+tayyip+erdo%F0an"

Uludağsözlük

scrapy crawl uludagsozluk -a baslik="www.uludagsozluk.com/k/recep-tayyip-erdoğan"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.