Feed43 ile RSS Feed'i Yaratma

Sık takip ettiğim sitelerin hemen hemen tamamını Google Reader üzerinden takip eder olduğumdan beri, inatla RSS feed'i sağlamayan birkaç site, bende takıntı haline gelmişti. Bu sitelerin başında ise Radikal'in Çizgiler bölümü geliyordu. Neyse ki, neredeyse her çizimlerinde beni etkilemeyi başaran Piyale Madra ve Ramize Erer'in Radikal'deki karikatürlerini Reader'a almanın yolunu sonunda buldum: www.Feed43.com. Feed43, işlevsel, sade ve güzel bir site. Numarası ise, dilediğiniz sayfanın adresini input olarak girdikten sonra, sayfadaki sık güncellenen içeriği RSS feed'lerine dönüştürmenize olanak sağlaması.
Peki sayfa nasıl çalışıyor?
Sayfanın işleyişi temelde ne aradığınızı bilmenizi gerektiriyor aslında. Feed43, RSS Feed'ini yaratmak istediğiniz sayfanın kaynak kodunu size gösteriyor. Size düşen ise, bu kaynak kod içinde size göre haber niteliği taşıyan bölümlerin örüntüsünü (pattern) keşfedip, bu örüntüyü feed43'e tanıtmaktan ibaret. Bu örüntüyü bulmak çoğu zaman değilmeyeceğini öngördüğünüz kod kısımlarını belirleyerek bir mihenk taşı yaratmak, sonrasında ise o mihenk taşından sonraki kod bölümünde, güncellenen içeriği tanımlamaktan ibaret oluyor.

Örnek Kullanım
Sayfanın hemen girişinde yer alan "Create your own feed" bağlantısına tıkladığınızda sayfa sizi adım adım yönlendiriyor ama takip rahatlığı sağlayacak örnek oluşturmak amacıyla Ramize Erer karikatürlerinin peşine beraber düşelim:

1. Ramize Erer karikatürleri için RSS Feed yaratmak istiyorsak, ilk adım olarak elbette ki karikatürlerin bulunduğu sayfanın bağlantısını bilmemiz gerekir. Radikal'den tıklandığında yeni bir pencerede açılan Çizgiler bölümünün güne ait içeriğinin bağlantısı, pencerenin tepesinde yazar: http://www.radikal.com.tr/Default.aspx?aType=CizgilerGaleri&VersionID=&Date=11.11.2008&CaricatureID=8&PAGE=1

2. Şimdi www.feed43.com'a girip "Create your own feed" bağlantısına tıklama zamanıdır.

3. Artık karşımızda bir kutucuk var. 1. Adımda elde ettiğimiz bağlantıyı bu kutucuğa yapıştırıp, "Encoding" bölümü için özel bir tercihimiz yoksa, "Reload" düğmesine tıklıyoruz.

4. Kısa bir süre "Sending request to server" uyarısını gördükten sonra, sayfanın alt kısmında, "Page Source" bölümünde sayfa kaynak kodunun gösterildiğini farkedeceğiz. Burası işin en alengirli yanı. İşin bu kısmında biraz hafiyelik yapıp, ne istediğimizi bulmamız gerekiyor. Amacımızı hatırlayalım: Ramize Erer'in güzelim karikatürlerinin düzenli olarak Reader'ımıza gelmesini istiyoruz. O halde o karikatürlerin sayfa kodunun neresinde olduğunu bulmamız gerekecek. http://www.radikal.com.tr/Default.aspx?aType=CizgilerGaleri&VersionID=&Date=11.11.2008&CaricatureID=8&PAGE=1 sayfasındaki karikatürün dosya özelliklerine baktığımızda, dosya adının "fft14_mf67157.Jpeg" olduğunu görürüz. Öyleyse sayfanın kaynak kodunda "fft14_mf67157.Jpeg" ifadesinin geçtiği bölümü bulmamız ve eğer ki var ise, ifadeyi içeren kod bölümünü bir örüntü olarak feed43'e tanıtmamız gerekiyor. Bu amaçla Ctrl+F ile fft14_mf67157.Jpeg ifadesini kod içinde aratalım:




fft14_mf67157.Jpeg ifadesinin geçtiği kod bloğunu bulduk. Şimdi, bu blokta fft14_mf67157.Jpeg isimli dosyanın geçtiği kısmı belli eden bir kod parçası var mı, ona bakalım. Derdimi anlatmama dahi yetmeyecek seviyede olan HTML bilgim bana, fft14_mf67157.Jpeg dosyasını bir resim olarak görmemi sağlayan ifadenin RAD�KAL - TEHL�KEL� �L��K�LER yazısından sonra gelen IMG ifadesi olduğunu söylüyor. Bunun aradığım mihenk taşı olduğunu feed43'e belirtmek için, "Item (repeatable) Search Pattern" başlıklı kutunun içine bu kısmı sonuna {*} ekleyerek yazıp, kutunun içinde alt satıra geçmem gerekiyor:





Mihenk taşımız belli olduğuna göre, yeni satırda, güncellenen içeriği tanımlayabilirim artık! Bu tanımlama işlemi ise, güncelleneceğini tahmin ettiğimiz -yahut umduğumuz- kısımları değişken olarak atamaya denk geliyor. Bunu yapmak için ise feed43'te, "banko değişir" dediğimiz kod kısımlarının yerine {%} yazıyoruz. Sonraki aşamada, tanımladığımız her değişkeni {%1}, {%2} gibi isimlerle, RSS feed şablonunu oluşturmak için kullanacağız. Şablonumuzda değişen içerik olarak karikatürün kendisi ve ait olduğu tarih olsun diyelim. Bu durumda kodda bir {%} ifadesi karikatürün adresi için, bir {%} ifadesi ise tarih için gerekecek. Karikatür adresi mihenk taşımızdan sonra geçen
http://i.radikal.com.tr/Karikatur/2008/11/10/fft14_mf67157.Jpeg" /
kodunda yer alıyor. Bu durumda, "Item (repeatable) Search Pattern" başlıklı kutunun içeriğini



şeklinde değiştirirsem, feed43, " ve " ifadelerinin arasındaki ifadeyi ilk değişkenim, date= ve & ifadeleri arasındaki ifadeleri ise ikinci değişkenim olarak tanımlayacaktır.

5. Nihayet "Item (repeatable) Search Pattern" kutucuğunun altında bulunan "Extract" düğmesine basıp, "Sending request to server" yazısının dinmesini bekliyoruz.

6. "Extract" düğmesinin hemen aşağısında bulunan "Clipped Data" ölümünde şu yazılar belirecek:

Item 1

{%1} = http://i.radikal.com.tr/Karikatur/2008/11/10/fft14_mf67157.Jpeg
{%2} = 11.11.2008
Bunlar, RSS feed şablonunu oluştururken, yeni karikatür adresine ait değişken olarak {%1} ifadesini, karikatürün tarihine ait değişlen olarak {%2} ifadesini kullanacağımızı söyleyen kutsal satırlardır! Artık RSS feed şablonunu oluşturmaya geçebiliriz.

7. Bu kısım, feed43'deki Step 3'e karşılık gelir. "Feed Title", RSS Reader'ımızdaki aboneliğin adıdır; "Ramize Erer - Tehlikeli İlişkiler" olsun. "Feed Link" http://www.radikal.com.tr/ olsun. "Feed Description" "-" olsun; Ramize Erer diyoruz, başka söze gerek var mı! "Item Title Template" tarih -yani {%2}- olsun ki, abonelik içinde hangi karikatürün hangi tarihe ait olduğunu bilelim. "Item Link Template" {%1} -yani karikatürün linki- olsun ki ne Radikal'in ne de Ramize Erer'in hakkını yemeyelim. "Item Content Template"in içine de yazalım ki, karikatürün linkini değil kendisini görelim abonelikte.

8. "Preview" düğmesine basalım.... Ve işte!




Resimde de görülen http://www.feed43.com/6811370241437211.xml adresli RSS Feed'i artık kullanıma hazır. İyi eğlenceler! : )

DÜZELTME: Yukarıda oluşturduğumuz feed'in tarih bilgisi güncellenmiyordu. Bunun sebebi, ilk adımda kullandığımız kaynak sayfa adresinde Date=11.11.2008 ifadesinin olması aslında. Dolayısı ile, bu adreste bulunan "Date=11.11.2008&" ifadesini silip geriye kalan işlemleri herşey aynı kalmak üzere tekrarlarsak, feed'imiz tam da olması gerektiği gibi olacaktır.

Ramize Erer'in Tehlikeli İlişkiler'i, Piyale Madra'nın Ademler ve Havvalar'ı ile Erdil Yaşaroğlu'nun Komikaze.net'i için feed43 ile oluşturduğum ve uzun süredir (iki gün!!!) sorunsuz çalıştığını teyit edebileceğim rss feed'lerini de ortak kullanıma açalım:

Ramize Erer'in Tehlikeli İlişkiler'i: http://www.feed43.com/7457357066518858.xml

Piyale Madra'nın Ademler ve Havvalar'ı: http://www.feed43.com/4762673732222184.xml

Erdil Yaşaroğlu'nun Komikaze.net'i: http://www.feed43.com/4737528211317157.xml

Yazar: DENİZ

8 yorum:

  1. Aslinda ben de boyle bir seyler ariyordum. Daha once benzer birkac sey denemistim, ama bu daha ayrintili. Ilk basta mantiga uyum saglamakta zorlandim, ama sonrasinda kendime birkac tane feed yarattim. Ama feedlerin dogru calisacagindan suphem var, o nedenle paylasmadan once birkac gun denemek istiyorum. Zira benim yarattigim feedlerde (kose yazilariydi) sayfanin URL'si de her gun degisiyor. Dolayisiyla feed43.com'un o degisen URL'yi her seferince bulabileceginden kuskuluyum. Bakalim, belki akilli bir sistem kurmuslardir. Calisirsa benim de paylasacagim birkac kose yazari var :)

    YanıtlaSil
  2. Bu konu ilginç hale gelmeye başladı. Yazıyı yayınladıktan kısa bir süre sonra Google Reader'da Tehlikeli İlişkiler feed'inde yeni bir item belirdi. Bu başlı başına tuhaftı zira bugünün karikatürü öğleden sonra zaten ulaşmıştı! Sonra işin daha garip olan kısmını farkettim: Item'ın başında "Bugunku karikaturumu benim karikaturlerim icin bir RSS feed olusturmaya calisan Deniz Kaya'ya ithaf ediyorum. Tesekkurler Deniz, sayende dunya artik daha guzel :)" diye bir not farkettim. Gerçekten Ramize Erer'in notuysa iki ihtimalli bir durum söz konusu: 1. Ramize Erer gerçekten sevinmiştir ve samimi bir şekilde o notu yazmıştır. (Ki bu durumda nasıl kızardığımı anlatamam)
    2. "RSS feed olusturmaya CALISAN" vurgusuyla, feed'in pek de başarılı olmadığına dair ince ve hoş bir nükte kullanmıştır. :) Her iki halde de Ramize Erer'in ismime ulaşacak kadar bilgi sahibi olması şaşırtır beni doğrusu. :)

    O notu, feed'in edit linkini bir şekilde görmüş arkadaşlarımdan biri item template'i değiştirip bir şaka yapmak amacıyla yazmışsa, bu üçüncü bir ihtimal oluyor ve konuyu ilginçleştirmekten geri kalmıyor; zira edit linkini kimseyle paylaşmadığıma eminim. Hem zaten edit linki ulaşmış olsa bile, sitede güncelleme yapılmadığı sürece ikinci bir item'ın bugün ulaşması tuhaflığını korur.

    Ah, unutmadan, sitenin güncellenmesi demişken, ilginç hadiseler zincirinin son halkasından da bahsedeyim: Radikal'in Çizgiler bölümünün sayfa tasarımını, bizim yazının yayınlanmasından kısa bir süre sonra değiştirmiş.

    Neler oluyor anlamadım :?

    YanıtlaSil
  3. Madem bu kadar analiz yaptın, açıklayayım. Aslında yarın sabah açıklamayı planlıyordum. Ramize Erer senin yaptıklarından haberdar olmuş mudur, olmamış mıdır, bilemiyorum, ama oraya o notu yazan benim. Tam da senin işaret ettiğin "edit linki" konusuna dikkat çekmek için yaptım bunu.

    Her bir feed daha sonra değişiklik yapılabilmesi için bir bir de "edit linki"yle birlikte geliyor. Bu linki kullanarak ayarlamalarınıza ulaşıp istediğiniz değişiklikleri yapabiliyorsunuz. Ya da yeni sayfa tasarımlarına uyum sağlayabiliyorsunuz. Sorun şu: feed linkinde bulunan ID ile edit linkinde bulunan ID aynı. Yani feed linkine sahip olduğunuz herhangi bir feed43 xml'inin edit linkini kendiniz de oluşturabiliyorsunuz. feed43 bunun engellenebilmesi için biz çözüm de düşünmüş aslında, feed tanımlandıktan sonra sayfanın alt bölümünde feedi editten korumak için bir seçenek sunmuşlar. Bu seçeneği kullanarak başkalarının feed ayarlarını değiştirmesini engelleyebiliyorunuz. Neyse... Ben de senin verdiğin linki kullanarak edit linkine ulaştım, feed ayarlarının korunmadığını fark ettim ve değişiklikleri yaptım. Keşke bilgilerimizin güvenliğindeki bu türden ufak dikkatsizliklerin yol açtığı şeyler bizi bir süre düşündüren şakalardan ibaret olsa. Tam kıssadan hisse çıkaracak kıvama gelmişim ben de, alla alla...

    Neyse efendim, bakalım bu feed43 benim oluşturduğum feedlerde de başarılı olacak mı, yoksa saçmalayacak mı :)

    Not: Karikatürlerin birden çok kez güncellenmesinin nedeni feed43.com'un günde birden çok kez sayfaya bakıyor olması olabilir. Uzmanlar bu akşam tekrar baktığında sayfa tasarımının değiştiğini fark edip yeni bir feed hazırlamış olma olasılığı üzerinde duruyorlar. Yerseniz :D

    YanıtlaSil
  4. Unutmadan: feedi şifreledim, ama bütün feedlerimin şifresi aynı olduğu için şifreyi veremiyorum. Nasıl, iyi değil mi? Artık bu feedin bakımını da üstlenmiş oluyorum sanırım. Başa gelen çekilir :)

    YanıtlaSil
  5. Seni takdir ediyorum Eren :) Dogrusu feed43'un bu yonu hic dikkatimi cekmemisti simdiye kadar. Oyle bir yolla farketmemi sagladin ki herhalde on-onbes sene unutmam :)

    YanıtlaSil
  6. Bu arada, feed'i eski haline getireceksin, degil mi? :)

    YanıtlaSil
  7. Calisirsa getiririm tabii. Bakalim :)

    YanıtlaSil
  8. Piyale Madra:
    http://www.feed43.com/radikal_piyale_madra.xml

    Scott Adams/ Dilbert:
    http://www.feed43.com/radikal_dilbert.xml

    Bu da benim meşrebimce Ramize Erer: http://www.feed43.com/radikal_ramize_erer.xml

    Ben bu Feed43'yi çok sevdim :)

    YanıtlaSil