fix(porndoe): scrape przez proxy, bo tub blokuje IP serwerowni (10 dni bez nowych scen)
Watchdog zglaszal "tube:porndoecom (browse) bez nowych tresci (173h, prog 48h)" i potraktowalem to jako szum razem z alertami dla tubow, ktore faktycznie przestaly publikowac. Bledna ocena: porndoe to nasze czwarte co do wielkosci zrodlo (356 tys. zrodel), a ostatnia nowa scena wpadla 2026-08-21. Przyczyna: porndoe zaczal oddawac HTTP 403 na IP serwerowni. Scraper dostawal strone bledu, znajdowal zero linkow i konczyl sie bez wyjatku, wiec z zewnatrz wygladalo to na "tub sie wyczerpal", a nie na awarie. Ten sam ksztalt pomylki co przy porntrex, gdzie cicha zmiana markupu ukryla 6479 scen. Sprawdzone 2026-08-31: bez proxy 403 i 0 scen, przez Bright Data ISP proxy 200 i 31 scen z pierwszej strony, z datami z 30 sierpnia, dlugosciami i obsada. Wzorzec i uzasadnienie kosztowe jak przy superporn: ISP proxy jest ryczaltowe, wiec deep-crawl nie kosztuje wiecej, a przez proxy leci sam HTML, nigdy strumien. Bez skonfigurowanego proxy `crawl_page` zwraca pusta liste zamiast dobijac sie o 403.
This commit is contained in:
parent
dd87f646cc
commit
5e41285d44
1 changed files with 19 additions and 0 deletions
|
|
@ -34,6 +34,7 @@ import logging
|
||||||
import re
|
import re
|
||||||
from datetime import date, datetime
|
from datetime import date, datetime
|
||||||
|
|
||||||
|
from app.config import get_settings
|
||||||
from app.connectors.base import (
|
from app.connectors.base import (
|
||||||
RawFingerprint,
|
RawFingerprint,
|
||||||
RawPerformer,
|
RawPerformer,
|
||||||
|
|
@ -144,6 +145,24 @@ def _extract_video_object(html: str) -> dict | None:
|
||||||
class PornDoeScraper(BaseBrowseScraper):
|
class PornDoeScraper(BaseBrowseScraper):
|
||||||
sitetag = "porndoecom"
|
sitetag = "porndoecom"
|
||||||
|
|
||||||
|
def __init__(self) -> None:
|
||||||
|
super().__init__()
|
||||||
|
# Bright Data ISP proxy, bo porndoe zaczal oddawac 403 na IP serwerowni.
|
||||||
|
# Objawialo sie to jako "tub sie wyczerpal", a nie jako blad: ostatnia nowa
|
||||||
|
# scena wpadla 2026-08-21, watchdog krzyczal 173 h, a scraper po cichu dostawal
|
||||||
|
# 403 i zero linkow. Sprawdzone 2026-08-31: bez proxy 403 i 0 scen, przez proxy
|
||||||
|
# 200 i 31 scen z pierwszej strony.
|
||||||
|
self._proxy = get_settings().brightdata_proxy_url
|
||||||
|
if not self._proxy:
|
||||||
|
log.warning("porndoe: BRIGHTDATA_PROXY_URL nieustawione, scraper wylaczony")
|
||||||
|
|
||||||
|
def crawl_page(self, page: int):
|
||||||
|
# Bez proxy nie ma po co uderzac (gwarantowane 403). Pusta lista = "wyczerpany",
|
||||||
|
# dzieki czemu deep-crawl nie ponawia w kolko.
|
||||||
|
if not self._proxy:
|
||||||
|
return []
|
||||||
|
return super().crawl_page(page)
|
||||||
|
|
||||||
def _listing_url(self, page: int) -> str:
|
def _listing_url(self, page: int) -> str:
|
||||||
if page <= 1:
|
if page <= 1:
|
||||||
return f"{_BASE}/videos/most-recent"
|
return f"{_BASE}/videos/most-recent"
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue