Egy blokkoló proxy pool keresés megakaszthatja a Scrapy-t
Tartsa a szinkron proxy pool API-hívást a Scrapy eseményhurok-útvonalán kívül, és adjon a végpontfelderítésnek saját hibapertikát.
A crawlernek elegendő párhuzamos kérése van beállítva. Mégis megáll, valahányszor újabb címet kér a proxy pooltól. További proxyk hozzáadása ehhez a megálláshoz nem nyúl.
Egy gyakori middleware-minta a requests.get(pool_url) hívást intézi a process_request() belsejében. Ez szinkron hálózati művelet egy olyan útvonalon, amelynek a Scrapy aszinkron motorjával kellene együttműködnie. Amíg a hívás vár, feltarthatja a nem kapcsolódó munkát ugyanazon az eseményhurok-szálon.
Két kérés van a feladatban
Az egyik kérés végpontot szerez a poolszolgáltatástól. A másik ezt a végpontot használja a cél eléréséhez. Mérje és jelentse őket külön. Egy lassú pool API minden kiválasztott proxyt lassúnak mutathat, mielőtt az alkalmazás egyáltalán csatlakozott volna hozzá.
Használjon a telepített Scrapy-verzió által támogatott aszinkron felderítési integrációt, vagy szerezzen be és frissítsen egy korlátozott helyi végponthalmazt az egyes kérések kritikus útvonalán kívül. Ha a blokkoló munkát ki kell helyezni, adjon annak a végrehajtónak saját korlátokat és időtúllépés-kezelést; a korlátlan sor csak áthelyezi a késleltetést.
Ne indítson automatikusan újabb felderítési hívást minden kéréshez. Egy rövid élettartamú gyorsítótár vagy bérelt köteg csökkentheti a poolszolgáltatástól való függést, feltéve, hogy élettartama illeszkedik a szolgáltatás tényleges végpontpolitikájához.
Határozza meg, mit jelent a sikertelen keresés
Egy üres vagy sikertelen poolválasz nem távolíthatja el csendben a proxy metaadatait, és nem engedheti meg a közvetlen kérést. Válasszon kifejezett eredményt: várakozás a feladat költségvetésén belül, hiba, vagy egy jóváhagyott gyorsítótárazott végpont használata.
Tartsa tisztán a pool API saját útvonalát is. Ha belső szolgáltatás, a privát hosztnevének átküldése azon a proxyn, amelynek kiválasztásában segít, körkörös függőséget teremthet.
Miután a felderítés a nem kapcsolódó munka blokkolása nélkül működik, vizsgálja meg a szokásos proxy tranzakciót. Ezek külön javítások, és időzítésük külön mezőket érdemel a naplóban.