Web Kazıma'da Cloudflare, Captcha ve HTTP 403'e Takılmak

Arkadaşlar öncelikle selamlar bu ilk mesajım forumun üslubuna henüz hakim değilim, bir yanlışlık yaparsam şimdiden kusura bakmayın.

Selenium ve BeautifulSoup ile internet sitelerinden veri çekme üzerine beni rahatsız eden bir durum var. Soracağım konuda tecrübe sahibi arkadaşların bilgilerine ihtiyacım var.

Python’a tamamen internet sitelerinden veri çekme işlemlerini halledebilmek için öğrenmeye başladım ki 2-3 aydır yoğun bir şekilde ilgileniyorum. Selenium ve BeautifulSoup ile ilgili bulabildiğim tüm döküm, videoları inceliyorum ve uyguluyorum. Tekli sayfaların verisini çekme ile başlayan yolculuk hali ile bir seferde daha fazla sayfadan tek seferde daha çok veri çekmeye doğru ilerledi.

Amazon, Aliexpress gibi büyük hacimli sitelerden selenium üzerinden binlerce linkin verisini problemsiz çekebiliyorum, şimdiye kadar aşamadığım bir problem olmadı. Zaten genellikle eğitimlerde de çokça bu sitelerin örneği vardı.

Biraz daha spesifik sitelerden veri çekmeye çalıştığımda - örneğin: epey.com - tek tek işlem yaptığımda herhangi bir problem olmazken, işlemleri yüzlerce linkle çevirdiğimde “we are checking your browser” sayfası ile karşılaşmaya başladım. BeautifulSoup ile veri çekmeye çalıştığımda ilklerde problem olmazken yine işlemler yoğunlaştığında response: 403 hatası ile karşılaştım. En popüler çözüm yöntemlerini “kısmen” denedim. Kısmen diyorum çünkü bir yerden sonra ücretli sistemlere yönlendirmeler vardı.

Google aramalarından veri çekmeye çalıştığımda da 30-40 linkten sonra captcha ekranı ile karşılaştım. Bu sorunun çözümünü araştırdığımda canımı sıkan “asıl noktaya” gelmiş oldum. Forumlarda Google’nin bu tarz yoğun “bot” işlemlerini engellediği ve bunun için ücretli bazı sitelerin olduğunu gördüm. Anladığım kadarıyla Google bu konuda gerçekten katı.

Buraya yazmamın asıl sebebine gelirsek: Motivasyonum düştü !
Bu captcha,cloudflare vs. gibi problemlerle yeni karşılaştım. Bir kaç günlük araştırmamda da henüz bir çözüm bulamadım ve bu durum hevesimi kırmaya başladı.

Bir internet sitesinden ( haber, e-ticaret, karşılaştırma vs. ) istediğim veriyi her zaman çekemez miyim ? Tamam, güvenlik sistemleri var ancak bunları bir şekilde atlatamaz mıyım yoksa bir site “sitemden veri çekilmesini istemiyorum” dediği anda Selenium, BeautifulSoup vs. tamamen çöp mü olur ?

Bu soruyu sadece epey.com ya da google için sormuyorum. Şu an için adını bile hiç duymadığım bir sitede de aynı problem ile karşılaşınca bu problemin global bir çözümü olmaz mı ?

Elbette nokta atış bir cevap almak çok isterim :slight_smile: ancak “şu konuyu araştır” bile demeniz benim için yeterli.

Uzun bir yazı oldu, vaktinizi ayırdığınız için şimdiden teşekkürler.

2 Beğeni

Hoşgeldiniz.

Estağfurullah, biz de bir zamanlar yeniydik. Önemli olan bunu düşünmeniz.

Bu konuda şu bağlantıları inceleyebilirsiniz:
Konu açmadan önce yapılması gerekenler
Forumda Soru Sorarken Dikkat Edilmesi Gereken Hususlar Hakkında
Gönderilerdeki kod görünümü hakkında
Sıkça Sorulan Sorular (SSS)

Böyle bir şeyi ilk sizden duyuyorum ama mantıksız bir durum da değil açıkçası. Eğer işlemlerin aralarındaki süre çok kısa ise sunucu bunu bir DoS saldırısı olarak algılamış olabilir. :slight_smile:

Kendi veritabanının kopyalanmasını istemiyor olabilir. Google’a alternatif olarak DuckDuckGo var ama Web Scraping’e karşı tavrı nedir bilmiyorum.

Evet, “Burası benim çöplüğüm, burayı kafana göre kurcalayamazsın!” dediklerinde yapacak pek birşey kalmıyor. Aslında bu noktada Captcha, Cloudflare gibi sistemler siteleri olduğu kadar, bilmeden sınırları zorlayan yazılımcıları da, yasal sorunlara karşı koruyor diyebiliriz. :slight_smile:

Ayrıca konu ile ilgili şu yazıları buldum incelemek isteyebilirsiniz:
https://medium.com/@arzuyildiz/scrapy-ile-web-scraping-web-kazıma-nasıl-yapılır-️-841cf7645c10
https://medium.com/bilişim-hareketi/web-crawler-spider-ve-scrapy-4c32bcf57c08#93cc

2 Beğeni

Evet ya, artı sonsuz bence de. Şahsen tebrik ediyorum bu davranışı (soru soranin)

(Konu dışı kusura bakmayın ama yazmadan edemedim)

1 Beğeni

Merhaba seleniumla veri çekmeye çalışıyorum da sıkıntılar yaşıyorum yardımcı olabilir misiniz

Yeni bir baslik acip probleminizi bu ve diger basliklardaki gibi aciklamaniz lazim.