[]

ekşisözlükten veri çekme?

şimdi ekşideki başlıkları sallıyorum 15 ya da 30 dakikada bir kontrol edeceğim ve içinde x kelime geçen başlıkları kendi yapacağım siteye çekmek istiyorum.

bunu nasıl yapabilirim? az çok kodlama bilgim var. hangi framework, dil ile kolay olur sizce?


 
ekşisözlük - tatlısözlük diye ayırmadan, çok hızlı şekilde çoğu internet sitesinden nasıl veri çekersin onu anlatayım.

Node.js üzerine Express.js framework'ünü kur (defacto framework zaten Nodejs için). Bununla çok işin olmayacak.

HTTP Request için
github.com

Web Scraper (Eğer veri çekeceğin yer ajax ile dinamik veri yüklüyorsa cheerio işe yaramaz, o yüzden phantomjs kullanman gerekir, phantomjs ile çalışan bir scraper linki vereyim : github.com )
github.com

Async ("önce bunu yap, sonra şunu yap" ya da "bu üç işlemi aynı anda yap" gibi komutları verebilmen için)
github.com

Veritabanı için ORM (Çekeceğin veride çok ilişkisellik yoksa direk mysql driver ile de yapabilirsin)
github.com

15 dakikada bir scriptini çalıştıracak
github.com

Node.js http sunucunun sonsuza dek çalışmasını sağlamak için de pm2 kurarsın, eğer bir aksilik çıkar da durursa pm2 otomatik yeniden başlatır.

github.com

2-3 saatte öğrenirsin bunları. Async sayesinde paralel işlem yapabildiğin için veri çekme işi çok hızlı oluyor. Mesela PHP kullansan aynı anda tek bir url adresini ziyaret edebilecektin. Eğer 20 işlem istersen 20 ayrı php işlemi çalıştırman lazım, hem performanslı olmuyor. Bunda bir sefer yazıp istediğin hızda çalıştırabiliyorsun. İnternet hızına ve karşı tarafın cevap verme hızına göre ayarlayabiliyorsun.

Express.js http sunucuna bir limit vermezsen tüm istekleri aynı anda yollar, o yüzden http.globalAgent.maxSockets = 10 gibi bir limit koymak iyi olur, aynı anda 10 istek gider, karşı taraf isteklere cevap verirken "lan bi durun" olmaz.

Web scraping yasal açıdan gri bir alan, onu da belirteyim. Ekşisözlükten veri çekip bunu kendi sitende kullanman yasal olmaz :)
  • hayirsiz  (04.02.16 13:37:47 ~ 13:54:32) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.