· kaynak dev.to (home feed)
Mercado Libre arama API'si her proxy seviyesinde genel 403 döndürüyor, JSON tabanlı scraper'ları çalışmaz hale getiriyor
Bir scraping operatörünün aktardığına göre Mercado Libre'nin herkese açık arama endpoint'i artık her proxy seviyesinde anonim istekleri 403 ile reddediyor ve veri toplama işlemini yalnızca tarayıcı yoluna zorluyor.

Bir scraping operatörünün dev.to üzerinde yayımladığı teknik yazıya göre Mercado Libre, herkese açık arama API'sinde anonim isteklere yanıt vermeyi bıraktı. api.mercadolibre.com/sites/MLA/search (ve MLM eşdeğeri) çağrıları artık "forbidden" yazan kısa bir JSON gövdesiyle birlikte HTTP 403 döndürüyor ve yazar, yanıtın dört ayrı kurulumda birebir aynı olduğunu bildiriyor: evdeki geniş bant bağlantısı, proxy'siz bir cloud runner, bir datacenter proxy ve Meksika ile Arjantin'e sabitlenmiş bir residential proxy. Yazarın yorumuna göre bu, proxy seviyesine göre değişmediği için, fingerprint'lere tepki veren bir bot tespiti değil, bilinçli bir kimlik doğrulama duvarı. Çıkarılan pratik sonuç şu: JSON tabanlı bir Mercado Libre arama scraper'ı artık hiç çalışmıyor.
Bir bloğu gizleyen 200 yanıtı
HTML arama sayfası ayakta kalmış durumda, ancak zayıf IP'ler için hata modu kolayca yanlış okunabiliyor. Gönderiye göre, datacenter veya bare-runner IP'lerinden Meksika listing sayfasına yapılan istekler, şüpheli trafik için marketplace'in sunduğu yaklaşık 25.6 KB'lık bir frontend bundle olan gövdeyle birlikte HTTP 200 döndürüyor. Bu gövde gerçek bir sonuç sayfasının hiçbir işaretini içermiyor; dolayısıyla log'da başarı gibi görünür ama parse edildiğinde boş çıkar.
Residential proxy isteği yalnızca farklı bir şey aldı: gerçek başlığa, bir proof-of-work payload'una ve hesaplama çalıştıktan sonra yazılan bir cookie'ye sahip daha küçük bir sayfa. Yazarın çıkarımı şu: aynı status code bir yem, çözülebilir bir challenge veya gerçek sayfa anlamına gelebilir ve bu üçü yalnızca yanıt gövdesini inceleyerek ayırt edilir.
Çözüm kaçınmak değil, bellekti
Gönderideki en öğretici bulgu, anti-bot atlatma değil, container kaynaklarıyla ilgili. Mercado Libre'nin arama sayfası yaklaşık 3.3 MB'lık bir DOM render ediyor. 4096 MB bellekle yazarın Camoufox tabanlı tarayıcısı render sırasında öldürülüyor ve hedefin bağlantıyı kapattığına benzeyen bir hata fırlatıyor. Aynı kod 8192 MB ile 10 denemeden 9'unu geçti; düşük ayarda ise 12 denemeden 6'sı geçebildi ve tek başarısızlık da sert bir blok değil, hesap doğrulama sayfasıydı. Örneklem boyutları küçük ve bu tek bir operatörün benchmark'ı, ancak altta yatan ders not edilmesi değer: out-of-memory tarayıcı çökmesi ile düşmanca bir hedef aynı hata imzasını üretir ve ikisini karıştırmak, engellenme oranına dair istatistiklerinizin site savunmalarını değil kendi altyapınızı yansıtmasına yol açar.
Bir kez temizlendikten sonra pagination sürüyor
Bir session challenge'ı geçtiğinde, derin sayfalar ucuz geliyor. Yazar, 49'dan 385'e kadar offset'leri gezmenin — sayfa başına 48 sonuçla ikinci ila dokuzuncu sayfalar — dört ayrı denemede her birinde 54 ila 59 sonuç kartı içeren 2.65 ila 2.77 MB'lık gerçek sayfalar döndürdüğünü ve tekrar bir challenge veya captcha duvarıyla karşılaşılmadığını bildiriyor. Residential proxy maliyeti çalışma başına bir kez ödeniyor ve pagination'ın geri kalanı temizlenmiş context içinde gerçekleşiyor.
Gönderi ayrıca bir pagination tuzağını belgeliyor: aritmetik olarak bariz olan ikinci sayfa URL kalıbı, birinci sayfaya geri yönlendirmeyle yanıtlanıyor; dolayısıyla birinci sayfayı ikinciyle karşılaştıran bir örtüşme kontrolü, sessizce birinci sayfayı kendisiyle karşılaştırıyordu. Gerçek ikinci sayfa URL'si no-index işaretli 49 sonuçluk bir offset kullanıyor ve hata, yazar yönlendirmelerden sonra istenen URL'yi değil nihai URL'yi log'ladığında ortaya çıktı.
Operatörün aracı ne yapıyor
Yazı aynı zamanda bir Apify Actor için tanıtım niteliğinde, dolayısıyla ticari ayrıntılar yazara ait. Araç yalnızca Meksika domain'ini destekliyor, organik sonuçlar döndürüyor (item ID, başlık, satıcı, puan, fiyatlar, indirimler, taksitler, kargo, URL, para birimi ve zaman damgası), sponsored yerleşimlerini ve öneri karusellerini hariç tutuyor ve kurtarılabilir ret durumlarında session ile çıkış IP'lerini döndürüyor. Fiyatlandırma çalışma başına 0.20 dolar artı satır başına yarım sent; bu da 1.000 sonuç başına yaklaşık 5.20 dolara denk geliyor.
Neden önemli
Açık ama belgelenmemiş JSON endpoint'leri uzun süredir fiyat izleme ve pazar araştırmasının sessiz omurgası oldu. Büyük bir marketplace bunlardan birini kapattığında — daha iyi bir istemcinin yenebileceği bir fingerprint ile değil, düz bir kimlik doğrulama zorunluluğuyla — geriye kalan yol tam bir tarayıcı, bir proof-of-work challenge'ı ve residential IP'ler oluyor ve bu da herkese açık şekilde görüntülenen veriyi toplamanın maliyetini keskin biçimde artırıyor. Scraping mühendisleri için bu hikaye aynı zamanda tanısal bir uyarı: bir hedefin çok iyi korunduğu sonucuna varmadan önce, kendi container'ınızın sayfayı render etmeyi bitirecek belleğe sahip olup olmadığını kontrol edin.
- #web-scraping
- #api
- #mercado-libre
- #anti-bot
- #e-commerce