TeknoSeyir profilinizde paylaştığınız her şeyi indirmenize yarayacak bir python betiği üzerinde çalışıyorum. Bitirebilirsem yayınlayacağım.
Son olaylardan sonra yorumlarına değer verdiğim, yazdıklarını beğendiğim birkaç kişi üyeliklerini sildiler. "Profilimi siliyorum" paylaşımından sonra profillerine girip her F5 yapışımda yorum sayılarının azaldığını gördüm. Gözümün önünde eriyip gitti profilleri. Elbette kendi kararları diyecek lafım yok (lütfen bu konu altında da üyeliklerini silenler hakkında tartışma çıkmasın) ama onca emek birden uçup gitmesin diye bir araç sunmak istiyorum. Bakalım umarım bitirebilirim.

manyak fikir abi
Fotoları indiriyor mu şu durumda?
Tam şu an o özellik üzerinde çalışıyordum hocam 😀 İndireceğim gibi gözüküyor hocam şimdilik bir teknik zorluk çıkmadı resim indirmede.
Resimleri indirmeyi başardım. Yalnız sayfa scroll edildikçe durumlar yüklendiği için tüm durumları getiremedim. Yarın devam edeceğim, bir şekilde çözerim bunu.
@erenhatirnaz elinize sağlık gerçekten ç8k kullanışlı olacak bitince.
@erenhatirnaz Scroll konusunda sıkıntı olacak. Bence front-end tarafında kolay halledilebilr. Yani eldeki limitlerden dolayı...
-
[code]
$("#col-left").find(".content.parsed").each(function(index){
console.log($(this).text().trim());
})
[/code]
Sayfayı tamamen kaydırıp şu kodu consol'a yapıştırında yorumların hepsi geliyor. Kopyalanıp yapıştırılabilir.
@martin front-end tarafından almaya gerek kalmadı hocam. WordPress'in kendi API sistemi varmış. Oradan JSON olarak çekeceğim direkt. Şurada bahsettim: https://teknoseyir.com/durum/1080203#comment-3892284
@erenhatirnaz Boşuna tırmalanıyomuşuz 😅
@martin Aynen, ben de boşuna o kadar HTML verisini işlemeye çalışıyormuşum 😅😅
@erenhatirnaz 😂 olsun olsaydı zor yoldan olduğu için daha değerli olacaktı.
Çok güzel olur.
Verileri web arayuzu uzerinden toplamak yerine dogrudan API uzerinden alirsaniz isiniz daha kolay olur.
https://gist.github.com/dirigeant/8251ff09a2b0275556f5a15069ee02b2 adresinde bir kullanicinin yorumlarinin 2. ve 3. sayfasi icin iki ornek istek bulabilirsiniz. `loop` parametresinin arttirarak ileriki sayfalari indirebilirsiniz. Sona ulastiginizda `items` degeri bos donuyor. Bu durumu yakalayarak islemi durdurabilirsiniz.
Hocam çok teşekkürler. WordPress'in böyle bir api sunduğunu bilmiyordum. Sizin yazdığınızın çıktısı biraz karışıktı ben de böyle bi' şey varsa büyük ihtimal normal API sistemi de vardır diye araştırdım. Bunu keşfettim sayenizde: https://teknoseyir.com/wp-json/wp/v2/durum?author=1568&page=1 Çok daha temiz bir json çıktısı veriyor hocam. API sisteminin dökümantasyonu şurada mevcut: https://developer.wordpress.org/rest-api/
Süpermiş. Haberim yoktu benim de.
@erenhatirnaz bu istekleri api dokümanından değil doğrudan tarayıcı konsolundan aldım. Sunucu tarafını kurcalayarak TeknoSeyir ekibine sıkıntı olmak istemedim.
Ben de "Post uçmasın" diye bir şey üzerinde çalışıyorum çocuk izin verdiğince. Bütün postların köşesine kaydet diye bir link geliyor. Uçmasından emin olduğumuz yada bir tartışmada mesajının silinmesinden çekindiğinde veya on paragraf yorum yazdığında nolur nolmaz diye o postun snapshot'ını alıyorsun. Mesela tknsyr.tk/abc gibi bir link oluyor. Yarıda kalan tartışmalarda son sözleri de orada yazabiliyorsun. Nasıl hm?
Gayet güzel olur hocam.
i3 candır, ama vim yok galiba yada ben fark edemedim 😀
i3 değil hocam StumpWM kullanıyorum pencere yöneticisi olarak, yukarıdaki de onun mode-line şeysi. Editor olarak da Emacs açık ekranda.
3300 durum ve 17500 yorum ne kadar alan kaplar acaba? 😀
Bilemiyorum 😀 Betiği bitirdiğimde görürüz 😀
Gelişme: Tüm durumları indirmeyi başardım. Bu vesileyle sosyalde paylaştığım ilk durumu da görmüş oldum 😀
Darısı başımıza hocam.
Eline sağlık hocam ne zaman paylaşacaksın?
@protego şu an bir teknik zorlukla karşılaşmadım hocam devam ediyorum ama bazı yerlerde takılabilirim. Tahminim önümüzdeki hafta yayınlarım diye düşünüyorum hocam.
@erenhatirnazHepsini çekmeyi başardım diyince bitti sandım ben de 😀
@protego yok hocam dahalık sadece durumun tarihi, linki ve içeriğini çektim. Paylaşılan resimler, yapılan yorumlar, blog yazıları, incelemeler falan da var yapılacak.
@erenhatirnaz Yorumların olduğu durumlara gidip o durumları da yorumları ile çekecek misin?
@ucustakipilot kişinin kendi durumları haricinde başka kişilerin durumlarının altındaki yorumları getirmekte takıldım maalesef. Şu bağlantı için yetki yok maalesef: https://teknoseyir.com/wp-json/wp/v2/comments?author=1568
@erenhatirnaz Orayı arayüz üstünden bs4 ile hal olmaz mı? En azından başlangıç olarak tüm yorumlar çekilir.
@erenhatirnaz Böyle çekebiliyorsun;
https://teknoseyir.com/wp-json/wp/v2/comments?post=1080203
.
Senin gönderin olduğu halde ben görebiliyorum yorumları.
@ucustakipilot Sadece bs4 ile tüm yorumları çekemem maalesef arayüz üzerinden çünkü scroll ettikçe yükleniyor yorumlar. Bunun için selenium kullanmak lazım ama o da süreci çok ağırlaştırır.
@martin Kendi paylaştığımız durumlardaki yorumları getirmede sıkıntı yok. Şuradaki gibi tüm yorumları çekmeye çalışıyorum: https://teknoseyir.com/u/erenhatirnaz/yorum
Gelişme: Kendi paylaştığımız durum altındaki tüm yorumları getirmeyi başardım. Şimdi yorumlara gelen cevapları getirmeye çalışacağım.
@erenhatirnaz
Şöyle bir şey yaptım ama. Bi bakar mısın çalışıyor mu?
http://88.247.***.***
.
Gif'te kullanıcı kodunu nasıl bulacağımız gösteriliyor.
Çalışıyor hocam. Çok iyi.
Şöyle bir hata alıyorum:
Notice
: Undefined property: stdClass::$data in
C:\xampp\htdocs\index.php
on line
95
Notice
: Trying to get property 'items' of non-object in
C:\xampp\htdocs\index.php
on line
95
@ucustakipilot Sizin kullanıcı kodunuz 11685 Siz başka bir şey girmişsiniz sanırım.
Hallettim teşekkür ederim. Bunları indirmenin yolu var mı?
@ucustakipilot sağ tık. farklı kaydet.
Hamdi bey'in ilk postu fena fail olmuş 🙂
Gelişme: Yorumlara yapılan cevapları da getirmeyi başardım. Şimdi sırada duruma eklenen görseller var.
json linki bulabildin mi bunun için?
@martin Evet hocam. Duruma yazılan yorumları getirdiğim JSON içerinde yorumlara verilen cevaplar için de json linki var. https://teknoseyir.com/wp-json/wp/v2/comments?post=1080203&order=asc&per_page=50 Şuradan bakın hocam. Eğer bir yoruma cevap verilmişse _links -> replies kısmı oluyor json verisinde.
Bu arada hocam sen tüm yorumları JSON üzerinden mi çektin yoksa, arayüz üzerinden parse ederek mi getirdin?
@erenhatirnaz yukarida @dirigeant beyin gosterdigi yoldan gittim. Sayfada infinite scrooll un aldigi parametreleri takip ederek. O parametreleri post dataya ekleyince sayfaya gelen html kodu geliyor. Bunu tarayicida gostermek kolay oldu.
@erenhatirnaz ya bos vakit bulursam veritabanini komple indircem ordan forgu yapmasi daha kolay olur:) 🙂
Gelişme: https://teknoseyir.com/durum/1083920
Gelişme: https://teknoseyir.com/durum/1084847
Gelişme: https://teknoseyir.com/durum/1085647