• 30-10-2021, 11:41:05
    #1
    Herkese merhaba,

    Ben python ile 50 bin civarı link çekmeye çalışıyorum ama çok yavaş geliyor. Proxy kullanmam gerekiyormuş sanırım fakat bu nasıl olacak bilen ya da bu konu ile ilgili kaynak önerebilecek varsa çok sevinirim. Entegre edip hızlıca çekmem gerekiyor. Gerekli değerleri alabiliyorum fakat çok yavaş oluyor.
    Not: Selenium, BeautifulSoup kullanıyorum.
  • 30-10-2021, 11:50:03
    #2
    Selenium tarayıcı ile çalışıyor diye biliyorum. 100 proxy kullanacağınızı varsayarsak 100 tarayıcı demek bu. İşin içine javascript girmiyorsa HTTP kütüphaneleriyle kodlamanız daha mantıklı. Ayrıca asenkronize hale getirmeniz gerekir.
  • 30-10-2021, 11:52:56
    #3
    Kubilay_ adlı üyeden alıntı: mesajı görüntüle
    Selenium tarayıcı ile çalışıyor diye biliyorum. 100 proxy kullanacağınızı varsayarsak 100 tarayıcı demek bu. İşin içine javascript girmiyorsa HTTP kütüphaneleriyle kodlamanız daha mantıklı. Ayrıca asenkronize hale getirmeniz gerekir.
    Anladım hocam ben bir bakınacağım zaten ama siteye giriş yapıp almam gerekiyor çünkü sitenin kaynak kodlarını direkt çekemiyorum engelli olduğu için. Ben de her seferinde bu döngüyü kurmam gerekiyor.
  • 30-10-2021, 11:54:41
    #4
    Softgeni adlı üyeden alıntı: mesajı görüntüle
    Anladım hocam ben bir bakınacağım zaten ama siteye giriş yapıp almam gerekiyor çünkü sitenin kaynak kodlarını direkt çekemiyorum engelli olduğu için. Ben de her seferinde bu döngüyü kurmam gerekiyor.
    Engelliden kasıt nedir? JavaScript ile şifrelenmiş şekilde mi kaynak kodlarında?
  • 30-10-2021, 11:56:13
    #5
    Kubilay_ adlı üyeden alıntı: mesajı görüntüle
    Engelliden kasıt nedir? JavaScript ile şifrelenmiş şekilde mi kaynak kodlarında?
    Evet hocam şifreli şekilde maalesef o sebeple giriş yapıp almam gerekiyor.
  • 30-10-2021, 12:04:54
    #6
    İstediğiniz şey proxy değil multithreading hocam. Selenium kullanmak yerine requests session ozelligini kullanabilirsiniz. Çok daha hizli olacaktir. Ücretli destek gerekirse bakabilirim.
  • 30-10-2021, 12:08:18
    #7
    ribrahimozer adlı üyeden alıntı: mesajı görüntüle
    İstediğiniz şey proxy değil multithreading hocam. Selenium kullanmak yerine requests session ozelligini kullanabilirsiniz. Çok daha hizli olacaktir. Ücretli destek gerekirse bakabilirim.
    Hocam almak istediğim kısımlar şifreli döndüğü için alamıyorum maalesef. Bu sebeple selenium kullanıp bizzat sitenin page source'unu almam gerekiyor. Diğer türlü kaynak dönüşü olmuyor.
  • 30-10-2021, 12:16:29
    #8
    1-Seleniumda belirli bir sekme sayısı belirlenir. Örn 100. 100 sekme açılır. Sekme açmakla yükümlü bir thread olur. Aktif sekme sayısı 100'den aşağı düşünde yeni sekme açar. Bir diğer thread de sekmeler arası geçiş yapmakla yükümlü olur. Yüklenen sayfaları tek tek gezer, verileri çeker ve kapatır. Diğer yöntemlere göre yavaştır ama şuanki halinden daha hızlı olacaktır.
    2-JavaScript şifreleme algoritması çözülüp python'da kodlanılabilir. Kolay olacağını sanmam.
    3-JavaScript kodları istenilen veriyi decrypted olarak return edecek şekilde manipüle edilir ve Python'da dolaylı şekilde JavaScript çalıştırılır (bunu yapan kütüphane vardır mutlaka) istenilen çıktıya ulaşılır.
    4-Son bahsettiğimin aynısı ama javascript çalıştırabilmesi için NodeJS ile geliştirilir.

    Karşı taraf bu işlemleri yaparken işlem sayısından dolayı ip ban atmıyorsa proxy ihtiyacı yoktur.
  • 30-10-2021, 12:19:25
    #9
    Kubilay_ adlı üyeden alıntı: mesajı görüntüle
    1-Seleniumda belirli bir sekme sayısı belirlenir. Örn 100. 100 sekme açılır. Sekme açmakla yükümlü bir thread olur. Aktif sekme sayısı 100'den aşağı düşünde yeni sekme açar. Bir diğer thread de sekmeler arası geçiş yapmakla yükümlü olur. Yüklenen sayfaları tek tek gezer, verileri çeker ve kapatır. Diğer yöntemlere göre yavaştır ama şuanki halinden daha hızlı olacaktır.
    2-JavaScript şifreleme algoritması çözülüp python'da kodlanılabilir. Kolay olacağını sanmam.
    3-JavaScript kodları istenilen veriyi decrypted olarak return edecek şekilde manipüle edilir ve Python'da dolaylı şekilde JavaScript çalıştırılır (bunu yapan kütüphane vardır mutlaka) istenilen çıktıya ulaşılır.
    4-Son bahsettiğimin aynısı ama javascript çalıştırabilmesi için NodeJS ile geliştirilir.

    Karşı taraf bu işlemleri yaparken işlem sayısından dolayı ip ban atmıyorsa proxy ihtiyacı yoktur.

    Hocam çok detaylı yazıp cevap verdiğiniz için çok teşekkür ederim. Benim js bilgim yok denecek kadar az bu sebeple direkt olarak manipüle edip veriyi alamıyorum. Bu sebeple selenium ile sekme açtırıp alıyorum. Bu da biraz yavaş olabiliyor. Bu sebeple bunu daha hızlı yapabileceğim yol eğer proxy ile işleme almaksa bunu da deneyeceğim. Dediklerinizi not olarak aldım. Kendim de birkaç arama yaptım. Dediğiniz şekilde denemeleri yapacağım. Detaylı cevap verdiğiniz için çok teşekkür ederim hocam