Web Bot konusunda tarayıcı tabanlı kütüphanelerden kurtulmak için yardım.

sokratez

Üye
26 Haz 2015
119
6
Zaman
Öncelikle merhaba
Http/https isteklerinde takıldığım bir konu var.
Herhangi bir site için bot yapıyorum c# ile veya js veya python ile ancak bunlar ya selenium tabanlı yada puppeteer tabanlı ancak bu şekilde inanılmaz boşa bir kaynak tüketimi oluyor sistemi yoruyor ve istekleri yavaşlatıyor.

Sorun şu oturum bilgilerini tutarak sadece http request kütüphaneleri ile tarayıcıda yaptığım hareketlerin tamamını nasıl koda dökerim.

örn farklı farklı teknolojilerle yazılmış bir web sayfası node js vs vs
 

sokratez

Üye
26 Haz 2015
119
6
Zaman
Requests kullanarak sadece istek atabilirsiniz butona fln tiklayamaz sitede pek Bi işlem yapamazsinjz
Demek istediğim o buton tıklaması vs vs gibi işlemler olduğu için onlarında bir şekilde taklit etmek gerekiyor.
Elbette yapılabiliyor o işlemler ancak sorumda nasıl yapıldığı kaynak olsun vs
Get veya post istekleri sorun değil. rest api istekleri vs de giriyor işin içine veya başka bilmediğim şeyler.
Hedeflediğim site herhangi bir site olabilir elbet.
Ona göre davranışı düzenlemem gerek.
Dev tools ile göremediğim tıklamalar ve işlemleri nasıl taklit edicem örn giriş yapılmış bir api key almam gerek ancak get veya post isteği ile olan şeyler değil.
Selenium veya puppeter in getirdiği ağırlıktan kurturlmam gerek.
 

Carlonhack

Uzman üye
20 Şub 2022
1,315
333
Demek istediğim o buton tıklaması vs vs gibi işlemler olduğu için onlarında bir şekilde taklit etmek gerekiyor.
Elbette yapılabiliyor o işlemler ancak sorumda nasıl yapıldığı kaynak olsun vs
Get veya post istekleri sorun değil. rest api istekleri vs de giriyor işin içine veya başka bilmediğim şeyler.
Hedeflediğim site herhangi bir site olabilir elbet.
Ona göre davranışı düzenlemem gerek.
Dev tools ile göremediğim tıklamalar ve işlemleri nasıl taklit edicem örn giriş yapılmış bir api key almam gerek ancak get veya post isteği ile olan şeyler değil.
Selenium veya puppeter in getirdiği ağırlıktan kurturlmam gerek.
Peki bilmiyorum web alanını kusura bakmayın
 

BeoWulf007

Kıdemli Üye
19 Haz 2013
2,762
507
24
Praise The Fool
Doğru tespit, selenium hemen hemen hiçbir yerde gerekmiyor ve aşırı kaynak kullanıyor. %0.01 istisnalar hariç her şeyi sadece isteklerle halledebilirsin. Anlamadığı noktalarda yardımcı olabilirim ama sormak istediğim bir soru var... Dev tools'da görmediğin ne gibi şeyler var mesela? Her şeyi görebiliyor olman gerek. Daha rahat bir analiz için Fiddler kullanabilirsin. Insomnia gibi API test programları sayesinde bir siteyi analiz ederken notlar tutabilirsin.
Örneğin siteye giriş yaparken hangi adreslere istek attığını, hangi header'ları kullandığını, hangi methodu kullandığını, isteğin body'sini vs not tutabilir örnek istekler atıp programa dökebilirsin.
Eğer aklında örnek bir site varsa, yapamadığın yeri yazarsan yardımcı olmaya çalışırım.

Ben böyle kullanıyorum:
6LWcnpf.png
 
Son düzenleme:

sokratez

Üye
26 Haz 2015
119
6
Zaman
Doğru tespit, selenium hemen hemen hiçbir yerde gerekmiyor ve aşırı kaynak kullanıyor. %0.01 istisnalar hariç her şeyi sadece isteklerle halledebilirsin. Anlamadığı noktalarda yardımcı olabilirim ama sormak istediğim bir soru var... Dev tools'da görmediğin ne gibi şeyler var mesela? Her şeyi görebiliyor olman gerek. Daha rahat bir analiz için Fiddler kullanabilirsin. Insomnia gibi API test programları sayesinde bir siteyi analiz ederken notlar tutabilirsin.
Örneğin siteye giriş yaparken hangi adreslere istek attığını, hangi header'ları kullandığını, hangi methodu kullandığını, isteğin body'sini vs not tutabilir örnek istekler atıp programa dökebilirsin.
Eğer aklında örnek bir site varsa, yapamadığın yeri yazarsan yardımcı olmaya çalışırım.

Ben böyle kullanıyorum:
6LWcnpf.png
Şöyle bir daha baktımda ctrl f ile aramak aklıma gelmedi buton tıklamarı sonrasında gelen veri orda gözümün onundeydi.
Örnek bir site var üzerinde çalışıyorum daha önceki uygulamayı login ve cookie gibi sorunları çektiğim için http kütüphanesini kullanamadım.
Temelde bir kaç işlem yapıcam.
Once kayıt olup hesap oluşturucak bunu istekle oluşturuyorum diyelim.
Ancak devamında bir doğrulama kodu okuyacağım ve oluşturduğum üyeliğe giriş bu kod ile yapacağım.
Sorun burda başlıyor :D
Oturum bilgilerini tutarak işlemlere devam etmem gerek. sayfa yenilenmeden açılan menu üzerinde bir kaç buton tıklaması ve sonrasınde gelen
tek seferlik bi link var. Onu almam gerekiyor.
Burası kafamı karıştıran nokta devamında oturum bilgilerini nasıl tutmam gerekiyor hangisi oturum bilgisi.
Yapı olarak header da nasıl eklemem lazım.
 

N S

Uzman üye
19 Haz 2013
1,139
208
kullandığın browser'ın developer console'unu aç network kısmından gelen giden dataya bak daha sonra c# httpclient ile istediğini yaparsın sadece ve sadece gerçekten web sitesini render etmen gerekmediği taktirde harici hiçbir library kullanmana gerek yok. web işi basit iştir en babası jamstack çalışır arkaya rest api koymuştur aldım verdim :)
ha sürekli değişen js dinamik content basar arkaya da bir soket bağlantısı koymuştur uçtan uca da şifreliyordur sourcetan baktığında tüm js libraryler obfuscate edilmiştir o zaman reverse engineering yapmakla uğraşmaktansa render eder dom manuplation yaparsın belki. (zorlarsan bunu da çözer httpcientla yaparsın ama harcadığın vakte değmeyebilir sana kalmış)
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.