/ / Zabráňte tomu, aby sa do vyrovnávacej pamäte pridávalo zoškrabanie

Zabráňte pridávaniu odpovede scrapy do vyrovnávacej pamäte cache

Prechádzam web, ktorý vracia stránky s kódom captcha a stavovým kódom 200, čo naznačuje, že je všetko v poriadku. To spôsobí, že sa stránka vloží do vyrovnávacej pamäte cache.

Chcem tieto stránky znova indexovo prehľadať neskôr. Ale ak sú v pamäti cache, nevykúpia sa.

Je možné preťažiť funkciu process_response z httpcache middleware alebo hľadať konkrétny reťazec v html reponse a prepísať 200 kód chybovým kódom?

Aký by bol najjednoduchší spôsob, ako zabrániť tomu, aby boli škrabance vložené do vyrovnávacej pamäte.

odpovede:

2 pre odpoveď č. 1

Scrapy použitie scrapy.downloadermiddlewares.httpcache.HttpCacheMiddleware na vyrovnávaciu pamäť http. Ak chcete ignorovať toto ukladanie do vyrovnávacej pamäte, stačí nastaviť kľúčové slovo meta žiadosti dont_cache Pravda ako:

yield Request(url, meta={"dont_cache": True})

Vyššie uvedené dokumenty tiež hovoria o tom, ako ho zakázať v celom projekte s nastavením, ak vás to tiež zaujíma.