Merhaba! Bu videoda, PHP ve Visual Studio Code kullanarak nasıl yemek tarifleri çeken bir bot yapabileceğinizi adım adım anlatıyorum. AI teknolojisinin gücünü ve simple_html_dom kütüphanesini kullanarak internetten yemek tariflerini nasıl çekip organize edebileceğinizi öğreneceksiniz. Kodlama sürecini kolayca takip edebilmeniz için tüm detayları sizlerle paylaşıyorum.
#YemekTarifleriBotu #PHP #YapayZeka #WebScraping
Bu videoda neler bulacaksınız:
– PHP ile Visual Studio Code kurulumu
– simple_html_dom kütüphanesinin kullanımı
– Web scraping ve veri çekme teknikleri
– Yemek tarifleri botu yapımı adımları
– Örnek kodlar ve canlı uygulamalar
Videoyu izleyin ve kendi yemek tarifleri botunuzu yapmaya başlayın! Beğenmeyi, yorum yapmayı ve kanalıma abone olmayı unutmayın. İyi seyirler!
#Kodlama #VisualStudioCode #simple_html_dom #YemekTarifleri #KodlamaRehberi #Programlama
► Trendyol Botu: https://www.youtube.com/watch?v=nm-H385lVuU
► Blog İçin: https://kodgunlugum.com/yapayzeka-ve-php-ile-yemek-tarifleri-botu-yapimi-veri-cekme-listeleme/
► Sormak ve eklemek istediğiniz ne varsa yorumlar bölümünden yazabilirsiniz.
Bu videoda Eğitim amaçlı bir yemek tarifleri sitesinden nasıl bilgiler çekilip işlenir bunu vi Studio kod editörü ile PHP programlama diliyle çok kolay bir şekilde nasıl yapıldığını beraber gördük yaptık chat gpen de son derece güzel bir şekilde faydalandık nasıl yapıldığına hemen başlayabilirsiniz Dilerseniz projenin bitmiş haline kg.com danan ulaşabilirsiniz bu Eğitim amaçlı çalışmamızda baz alacağımız Hedef sitemiz yemek.com olacak yemek.com şöyle genel hatlarıyla şöyle bir inceleyelim şuradan bütün kategorilerini görebiliyoruz bütün kategorileri Eee istediğimiz kategoriden istediğimiz tarifleri çekebileceğimiz bir bot geliştiriyor olacağız şimdi bütün tarifleri gör diyelim burada kategorileri listeleyebilirsiniz yola çıkarak ilerleyelim Ben geliştirme ortamım bu şekilde ayarladım Simple html dom kütüphanesini projeye dahil ettim Simple html doğum kütüphanesinin nasıl projeye dahil edileceğini Bir önceki videomuz olan Trend Yol bot geliştirme videomuzda detaylı bir şekilde görmüştük Dilerseniz o videodan da faydalanabilirsiniz zaten kaynak kodlarımız kg.com da da olacak Oradan da temin edebilirsin şimdi chat gpt ile örnek bir prompt yazarak projemize bir giriş yapıyoruz Ben şöyle prompt ayarlamıştım şimdi chat gpt E bana başlangıç yapmam için html dom kütüphanesini kullanabileceğim bir örnek kod yazmasını istedim bakalım ne şekilde çıkaracak istediğim gibi olacak mı Evet e belli başlı şeyler var Bana bu yeterli Bunu alıyorum projeme yapıştırdım şimdi E Simple html dom kütüphanesinin projenizin olduğu dizinde olması gerekiyor burada Buraya include edilmiş Ben indirip doğum kütüphanesini buraya attım Daha öncesinde şimdi kaynak sitemiz kaynak sitemiz ne demiştik kaynak sitemiz yemek.com olacak ama bir kategoriyi baz alacağız demiştim E şu kategoriyi baz alarak bir devam edelim Bir başlangıç yapalım hamburgerler kategorisinin linkini aldım geliyorum şimdi Hedef URL kısmına yapıştırıyorum şimdi bir sonucu E şu kısma gelmeden önce bir sonucu görelim burayı bir yorum satırı yapalım eo diyerek acaba bu siteye file Get html fonksiyonuyla erişim sağlayabiliyor muyum şimdi onu görmüş olacağım geldim projemi yeniliyorum Evet erişim siteye erişim sağlayabiliyoruz html e CSS olmadan html kodlarını görüntüleyebiliyor şimdi bazı düzenlemeler yaparak ilk bilgileri ilk verileri bir çekmeye başlayalım şimdi amacım Öncelikle buradaki tariflerin Linklerini bulup ekrana yazmak ardından da o linklerin içerisine girip diğer bilgileri elde etmek şimdi o zaman ilk işimiz ne olacak ilk işimiz bizim e tariflerin Linklerini bulup ekrana şuraya yazabilmek olacak Ben Başlığa tıklıyorum sağ tıklayıp ögeyi incele dedim Şöyle baktığımda H4 etiketi altında a etiketi bana linki veriyor şurada Aslında onun bir üstünde ne var bir üstünde E bir H4 etiketi ve klası var E ben H4 Class bu içerideki değeri döndürüp forle döndürüp içerideki a değerlerine e ahf e değerine ulaşabilirim Aslında şöyle yapalım Şu classı bir not edelim Öncelikle H4 içerisinde şimdi şu fori tekrar bir aktif edelim şu eko’yu da kaldırıyoruz Tabii buradan eko’yu kaldıralım sadece html kalsın E forç biraz daha okunabilir olması adına şöyle bir açalım Ne yapmışız örnek çalış örnek olarak Yapay Zeka arkadaşımız bize bunu vermişti Eee html’in içerisinde bir değer aramam gerekiyor o arayacağım değeri Ben şimdi kopyaladım E klı bu ne kastı ama eee bir etiketin önündeydi bir etiket vardı H4 etiketiyle bana ne gelecek ne bekliyorum Eee a değerinin içerisindeki href Eee değeri gel href gelecek Yani link gelecek Onun için e Clan sonra a etiketi var demiştik a etiketini de direkt burada girebiliriz Aslında a etiketine girdikten sonra element element ne olmuş oluyor burada element de a etiketi olmuş oluyor Eee a etiketinin bana neyi lazım hfi lazım o zaman element değil de HF dediğimde ekrana E bu kategorideki Ana sayfadaki o ürünlerin Linklerini bana çıkarıyor olması gerek bakalım kontrol edelim şöyle bir yenileyip ön izleme yapıyoruz Evet hler içerisinde yarım bir şekilde link parçası geldi Niye yarım geldi bakalım bize ne varsa onu getirdi yani link de zaten site içerisinde yarım olarak görünüyor Tabii bunun arka planında yemek.com burayı URL Aslında tamamlıyor burayı ama biz bunu arka planda manuel tamamlamak durumundayız manuel nasıl tamamlayacağız e ilgili kısmı aldım Şuraya da hatta buna böyle bir link diyelim değişken atalım çift tırnak içerisinde sitem olduğu gibi yazıyorum ardından da nokta oper türle bunu birleştirdiğim de linki okun şekilde görüyor olmam lazım Olması gerektiği gibi bakalım iki tane Slash yapmışız burada Slash birini e birisini kendi getirmiş birisini de biz yazmışız buradan silelim sildiğimizde doğru bir görünüm elde etmiş olacağız şunu da şuraya alalım Evet sağ tıklayıp git dediğimde gidiyor mu ilgili ürünün ilgili yazının içeriğin linkini doğru bir şekilde gittiğini görüyoruz şimdi benim asıl amacım bu linklere de arka planda otomatik olarak girip girdikten sonra da içerideki kısmı işleyip ekrana yazmak şimdi bu linklerin içerisine nasıl gireceğiz şimdi ona bakalım Öncelikle ben buradan eko’yu kaldıralım Ve sonuna eklediğimiz bu BR etiketini de kaldıralım ki yanlışlık olmasın Şimdi linki aldık bu şekil şekilde E ben burada burada İşlediğim E bu satırdaki kodumu tekrar burada uygulamam lazım tekrar file Get html E fonksiyonuyla bunu okuyabilmem lazım O linklerin içine girebilmem lazım buna göre uyarılıyorum html’ le tekrar içine girmiş olduk şimdi Eee ekstra bir for çalışmama gerek var mı hayır yok E ben artık bütün linklerin içerisindeyim e en baştaki linkten başlayıp otomatik bir şekilde E buraya Tex yazdığım kod otomatik bir şekilde kaç tane link varsa içindeki e birazdan find’ la belirteceğim etiketleri okuyup ekrana yazacaktır şimdi örnek olarak bu tarife girdiğimizi varsayalım bu tariften ne çekebiliriz bu tarifin resmini çekelim e başlığını çekelim öyle bir başlangıç yapalım bakalım Öncelikle resmi nasıl çekebiliriz sağ tıkladım incele dedim resme etki eden ne var burada şöyle bir Class var bu classın içerisinde ımg var ımg nin de SRC değeri var az önceki a href etiketi e ve href değerinde olduğu gibi o işlemin benzerini yapacağız Ben şu classa işe başlayabilirim Eee şu classı bir not edelim kassan sonra ımg ve SRC var Onu da unutmayalım şöyle şuraya alalım notumuzu Ben şimdi bunu şöyle html diyelim Find diyelim içerisine kımızı Öncelikle bir atalım Clan sonra ne vardı Clan sonra ımg vardı onu da unutmayalım şöyle bir ekrana yazdırıp baktığımızda sonucu Bir gözleyin bakalım bir eksik yediğimiz bir şeyimiz var mı Evet dönüyor streak Convention hatası He şundan dolayı şunu yapmadık E ımg şimdi bu etiketten kaç tane var Biz kaçıncıyı alıyoruz E onu buraya belirtmemiz lazımdı onu Es geçmişiz e ve aynı zamanda Neyi Es geçmişiz biz hangi değerini alacağız SRC değerini alacağız onu da bu şekilde belirtmemiz lazım şimdi kontrol edelim ş bütün yazıların bütün tariflerin ayrı ayrı linkleri gelmiş olması lazım düzenli bir şekilde getirelim bunu geldiğini görebiliyorum şu an şöyle yaptığımda daha okunaklı olacaktır Evet görmüş olduğunuz gibi test edelim açılıyor çok güzel orijinal yüklenen resimler olduğu gibi ekrana geliyor şimdi Sıkıntı yok devam edecek olursak resmi aldık ismin yolunu aldık neden yolunu aldık belki Kay sunucumuza kaydedebiliriz sitemize kaydedebiliriz e ya da kaydetmeden ekranda gösterebiliriz Onun için e çeşitli projelerde çeşitli ihtiyaçlar için kullanabiliriz şu Başlığa bakacak olursak başlık nerede başlığın bir üstünde div Var Üstünde Ne Var Üstünde E şöyle değerli bir KL var bu KL Evet burayı kaps bu klı Çağ irim bu classın içinde ne var E içinde 2ye B spam ve H1 etiketi var Ben sadece bu classı çağırarak ve html’ temizleyerek Aslında başlığı olduğu gibi ekrana yazabilirim diye düşünüyorum hemen bir testini yapalım Kımız buydu not ettim ben şimdi buraya Buna da değişken atayarak gidelim bu arada tarif resim yolu diyelim düzenli gidelim Şimdi neyi çekecektik tarif tarif ad olsun tarifin adını çekeceğiz tarifin adına ulaşabilmemiz diyeceğim yeniliyorum bakalım başlıklar mızı da aldık mı Evet köfte sulu falan filan Eee kötü ilk başlığımız buydu örnek açtığımız başlık da buydu zaten evet sorunsuz bir şekilde başlığı da almışız devam edelim Neyi çekebiliriz aşağı doğru iniyorum aşağıda üç farklı Eee bilgi var burada kaç kişi oldu hazırlama süresi pişirme süresi şimdi az önce demiştim ya ıgn 0c Değerini çekmiştik işte şimdi burayı yaptı neden öle yazdığımı daha iyi anlayacaksınız Çünkü çünkü burada aynı kass ve aynı elementlere sahip 3 tane bilgi var 3 bilgiy de sırasıyla 0 1 2 array mantığıyla 0 indis 1 indis 2 indis şeklinde ekrana çekmeye çalışacağız şimdi ilk burada ana Kımız bu bu klası bir not edelim editörü gidiyorum kımı yazdım Buraya şimdi ilk değerin adı neydi kaç kişi kişi sayısı Eee tarif kişi diyelim şu kımı aldım şuraya yapıştırdım E bundan sonra ne geliyordu Class Bundan sonra ne geliyordu H3 kaç kişi oldu He ben burada E az önce yaptığım gibi Sadece bu classı pl text edip yazarsam ekrana ne gelecek hem H3 içi gelecek hem spanın içi gelecek ben bunu istemiyorum ben sadece burada span e etiketinin içerisini istiyorum Onun için buraya geliyorum boşluk span diyorum tamam mı span deyip onun içerisindeki bilgiyi almak istiyorum ve sıfırıncı e sıfırıncı test aşamasındayken böyle durumlarda aslında bir e sınırlayıcı yapabiliriz forage döngüsünü komple çekmesin de e geliştirme işlemini bitirene kadar Break komutuyla Bir durduralım bakalım daha hızlı sonuç alırız gördüğünüz gibi Evet 4 kişilik olduğunu çektik Şimdi ben E neyi çekeceğim hazırlama süresi O nasıl işliyor aynısı bak gördüğünüz gibi arkadaşlar Class aynı element aynı Eee H3 span Onun için sıfırıncı buydu birinci bu olacak şu da ne olacak bak hepsi her şey aynı Bu da ikinci olmuş olacak 0dan başlıyoruz saymaya bu sıfırıncı ydı geldim Eee ne süresiyle diyelim H süre diyelim hazırlama süresi 0 değil de birinci Bakın şu kısımlar hiç dokunmuyorum aynı olduğu gibi duruyor bu hazırlama süresiyle Yani iki tane daha değer gelecek şuraya Evet 30 dakika bakalım doğru mu hazırlama süresi 30 dakika bir de 20’de pişirme süresi de 20 dakika çok güzel Burayı da Hallettik Eee Burayı da Hallettik bakalım Şurayı şurası Muhtemelen 34 farklı Eee gövdeden oluşuyor Burayı da ayrı ayrı ayrı çekebiliriz aslında ama Eee ben bakayım bir tarife alsak yeterli şimdilik yani tarife alalım Dilerseniz onu da siz yapabilirsiniz Yani aynı mantıkla gidiyor ben farklılık olması açısından ekrana böyle E biraz e açıklama niteliğinde bir bilgi çekmek adına bunu bir çekelim nereye çekeceğiz şu üste Bir bakalım tarifi nasıl bunun üstünde ne var bakın Şurayı komple aşağıya kadar komple kapsayacak e etiketi arıyorum arkadaşlar divi arıyorum classı arıyorum Yani amacım bu bu değil bakayım bu komple kapsıyor Evet sanki bu komple buraya aşağıya kadar gidiyor mu nereye tarih şurada bitti bakayım tıklım Evet tarih buraya kadar Eğer şunu da alsaydı bir üstündeki mi alıyor artık o da bilmiyorum şunu da alsaydı bunu kabul etmeyecektim Ama şu an tam tarife kadar alıyor Bu Klas bu klası alabiliriz Hatta bu klası alıp içini komple temizlersek yazıları olduğu gibi elde etmiş oluruz hemen deneyelim Kımız şu geldik buna tarif Detay diyelim artık değil mi tarife geçtik Kımız burada span yoho içinde kımı aldım ikinci değil de tekrar Idan başlıyorum bir tane e sıfırıncı şimdi bir ekrana ekranı bir yenileyelim Evet görmüş olduğunuz gibi nasıl yapılır şöyle böyle karıştırılır çırpılır böyle yapılır tarifi de elde etmiş olduk e kısaca bütün bilgileri bu şekilde çekmiş olduk şimdi resmi bir ekrana yazdıralım resmi ekrana yazdırıp E daha sonraki aşamada da kategoriyi otomatikleştirmek burada bir Select box olsun tıklayalım e listele diyelim istediğimiz kategoriden bilgiler çekilsin ekrana ama ondan önce şu yol var ya yol e resim yolu resim yolu şuradaydı iptal ettim sadece Ne kaldı elime e resim yolu kaldı bakın veri tabanına kayıt yaparken de sadece sağını solunu BR falan varsa silmeyi ihmal etmeyin genelde Unutulur bu eee Eee Şuraya bir resim resim etiketi açalım imy SRC resim bunun içerisine gelsin Eee genişlik ve yükseklik değeri tanımlayalım bir dik dör bir kare olsun Evet yeterli yeterli olur herhalde eko’yu kapatalım şu resim yolunu alalım resim yolunu Şuraya koydum tırnakla başladığımız için tek tırnakla başladık nokta operatörle birleştirdik bunu da nokta tek tırnak yapıp sıkıntı yaşamamak adına şöyle bir ön izleyelim e Yalnız Bunun da sonuna bir BR atalım şimdiden de alt başlık onaya yapışmasın nasıl durduğuna bakalım şimdi bir de birek komutunu iptal edeceğiz bakın geldi ekrana daha da küçültebiliriz aslında daha kibar Dursun diyorsanız şöyle yapabilirsiniz Ne yapacaktık şu ek komutunu iptal edelim ki Diğerleri de tam ve sağlıklı bir şekilde geliyor mu Hatta o olmadan şuraya HR etiketi ekleyelim noktalı vir gülümüzü unuttuk gelelim yenileyelim bakalım bütün erimiz düzenli bir şekilde geliyor mu Evet geliyor gayet düzenli bir şekilde geliyor Ben şimdi Bütün kategorilere istediğim kategoriyi çekmek istiyorum dinamik hale getirmek istiyorum kategoriler neredeydi kategoriler burada B bu Java Script şimdi bu buna bizi uğraştırır Ben e statik olarak bir sayfada açık şekilde var mı Ona bir bakacağım Burada da kategoriler varmış sağık ögeyi İncele bakalım bir şu an görünmüyor bakın açtığımda şuraya şunun içine geliyor şimdi ben buradaki değerleri alıp değerleri bir Select Select box yapmak istiyorum ama oturup da tek tek temizlemek Eee büyük bir işkence olacaktır Onun için bu Yapay Zeka arkadaşımızdan yararlanmak istiyoruz Şimdi bu kodumu aldım geldim Eee chat gpt tekrar bir e sayfa açalım kafası karışmasın kodu yapıştırdım bir de şöyle bir prompt giriyorum buraya diyorum ki şimdi bu değerlerden bir html Select box oluştur ve value değerleri Türkçe karakter olmasın ve boşlukları TR karakter değiştir değerlerin tamamı küçük harf olsun falan filan bakalım istediğim gibi alt alta yazacak mı evet evet Tam da istediğim gibi yapıyor şu an Evet kodumuzu oluşturdu bunu şöyle alıyorum aldım PHP alanımız şurada Dursun şuraya şöyle Öncelikle bir html oluşturalım tamam mı html oluşturalım Ben Select boxı nerede kullanacağım bunin içerisinde kullanırım zaten o da şurada Şimdilik kapalı kalsın şu dom kütüphanesini uyumdur include edilen değerleri genelde Ben sayfanın en üstüne koyarım karışıklık çıkmasın diye Eee şimdi aklımız dayken Onu yukarıya bir alalım sadece o dom Kütüphanesi Bir Yukarıda Dursun html de burada dursun Buna da bir isim verelim burada bir e form Action oluşturalım form Action şu Select alanını da içine koyalım Evet E buna direkt kategori diyebiliriz ya kategori kategori olsun bu form action’ boş bıraktım metodum metod diyelim metod post metoduyla veriyi göndeririz şimdi nasıl göndereceğiz butonum yok bir butonum olsun listele listele butonu buna type submit demezsek işe yaramayacaktır Evet nasıl göründüğüne bir bakmadan önce şöyle de desek mi acaba nasıl diyelim e Eğer post veriler post edildiyse görünsün sayfa sayfa aşağıdaki bilgiler yani sayfa açıldığında otomatik olarak verileri çekmesin bunu istemeyiz if post yeterli Şimdilik şöyle Parantezi açtım en altta da kapatalım en altta kapatalım şurada yeterli Eee unuttuğumuz bir şey varmı şöyle bir görünüme bakalım Evet bu şekilde görünüyor Eee Select boxı gelmiş listele butonuna bastığımızda Şimdi ben değişkeni atamadım standart olarak hamburger kategorisini çekecektir hamburger kategorisindeki veriler ekrana geldi şimdi orayı dinamikle Şti ceğiz e dinamikle Şti dinamik leştir demeden Şuraya da bir HR atalım Üst taraf bir görünür olsun üst tarafı da şöyle bir şöyle olsun ne demiştik şimdi nasıl görünüyor Bir bakalım Tabii post gider şöyle bir yenileyelim Evet listeleyin şu tarafa veriler gelecek verilerin gelebilmesi için e Select Select box Ben değerleri hangi değişkende almıştım e name değeri neydi Ne vermiştik namee bakalım Evet nei kategori demiştik kategoriyi karşılamamız lazım O zaman bizim şurada şurada bir kategoriyi karşılamamız lazım Şuna da şöyle kategori diyelim Hatta e nasıl karşılayacağız şöyle post name aynı şekildeydi Evet kategoriyi bu şekilde post edildiğinde karşılayıp gelip şuraya hamburger değerini artık dinamik hale getirmem lazım şu şekilde çalışıyor olması lazım enter dedim şuradan bir mesela kategorisini listele dedim Bakalım o kategorideki yemekler gelecek mi Evet gelmeye başladı görmüş olduğunuz gibi hala yükleniyor böyle bir şekilde yemek sitesinden tarifleri ekrana alacağımız bir örnek çalışma yapmış olduk bu çalışmayı bir ileri aşamaya taşıyacak fikirleriniz varsa yorumlardan yazabilirsiniz görmüş olduğunuz gibi sıkıntılı bir şekilde çalışıyor Bir kategori daha deneyelim e börek diyelim mesela Bakalım gelecek mi börekler Evet onlar da geldi kategorilerimiz burada istediğinizi tıklayıp çekebilirsiniz Bu şekilde buraya bir buton atayıp veri tabanına ekle butonu örnek veriyorum bastığınız anda da yine post işlemini karşılayıp veri tabanına ekleme kodlarınızı yazıp istediğiniz tabloya daha önce oluşturacağınız hesap ve verileri oraya çekebilirsiniz şu eri de sunucunuza kaydedebilirsiniz yani farklı projeler yapılabilir geliştirilebilir Herkese iyi çalışmalar kolay [Müzik] gelsin for
KAYNAK



