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.

Kapcsolódó cikkek