scrapy-proxy-pool: තහනම් හඳුනාගැනීමේදී ද්විමය ප්රතිචාර හැසිරවීම
තත්ත්වය සහ හිස්-ශරීර තීරණ රඳවා ගනිමින් scrapy-proxy-pool හි පෙළ-රටා පරීක්ෂාව TextResponse වෙත සීමා කරන්න.
PDF හෝ රූපයක් ප්රොක්සි හරහා සාර්ථකව පැමිණ පසුව තහනම් හඳුනාගැනීමේදී අසාර්ථක විය හැක. Scrapy හි මූලික Response ශරීර බයිට් ලෙස පෙන්වයි, නමුත් එහි text ගුණාංගය “Response content isn't text.” දෝෂය ලබා දෙයි.
ස්ථාපිත scrapy-proxy-pool ප්රතිපත්තිය කොන්දේසි රහිතව response.text සොයන්නේ නම්, එම ප්රතිපත්තිය වර්ගය දන්නා අනුවාදයකින් ප්රතිස්ථාපනය කරන්න:
from scrapy.http import TextResponse
from scrapy_proxy_pool.policy import BanDetectionPolicy
class BinaryAwarePolicy(BanDetectionPolicy):
def response_is_ban(self, request, response):
if isinstance(response, TextResponse):
if self.BANNED_PATTERN.search(response.text):
return True
if response.status not in self.NOT_BAN_STATUSES:
return True
return response.status == 200 and not response.body
පැකේජයේ දිගු සැකසුම හරහා එය තෝරන්න:
PROXY_POOL_BAN_POLICY = "myproject.policy.BinaryAwarePolicy"
මෙය ප්රතිපත්තියේ තත්ත්වය සහ හිස්-ශරීර නීති රඳවා ගනිමින් පෙළ සෙවීම එයට සහාය දෙන ප්රතිචාරවලට පමණක් සීමා කරයි. උරුම වූ ව්යතිරේක ප්රතිපත්තිය ද තවදුරටත් ලබා ගත හැක.
ඉතිරි නීති ද යෙදුම සඳහා සමාලෝචනය කරන්න: හිතාමතා හිස් 200 ප්රතිචාරයක් හෝ සාමාන්ය ගමනාන්ත දෝෂයක් සැමවිටම නරක ප්රොක්සියක සාක්ෂියක් නොවේ. මිඩ්ල්වෙයර් සක්රීයව තබා අසාර්ථකත්වයට හේතු වූ වර්ගීකරණය වෙනස් කරන්න, ද්විමය බාගැනීම් සඳහා සියලු තහනම් හඳුනාගැනීම් අක්රීය කිරීම වෙනුවට.