લોગમાં પ્રોક્સી સરનામું બદલાય છે. લક્ષ્ય ક્યારેય પ્રોક્સીના એક્સેસ લોગમાં દેખાતું નથી. તપાસો કે તમારું મિડલવેર વિનંતીને ડાઉનલોડર સુધી પહોંચવા દે છે કે નહીં.

Scrapy ના ડાઉનલોડર મિડલવેરમાં Request પાછું આપવાનો અર્થ છે તે વિનંતીને ફરી શેડ્યૂલ કરવી. તેનો અર્થ એ નથી કે “હમણાં બદલેલા મેટાડેટા સાથે આ ઑબ્જેક્ટ મોકલવાનું ચાલુ રાખો”.

ફક્ત એક માર્ગ પસંદ કરતા સિલેક્ટર માટે મહત્વપૂર્ણ સ્વરૂપ છે:

def process_request(self, request):
    request.meta['proxy'] = self.choose_proxy()
    return None

આ ટુકડો હાલનું હૂક સ્વરૂપ દર્શાવે છે; ઇન્સ્ટોલ કરેલા Scrapy સંસ્કરણ સમર્થિત મિડલવેર ઇન્ટરફેસ વાપરો. સિલેક્ટરે માન્ય એન્ડપોઇન્ટ પાછો આપવો જોઈએ અને અનુપલબ્ધ પૂલને સ્પષ્ટ રીતે સંભાળવો જોઈએ. જાહેર મધ્યસ્થીઓને મંજૂરી આપતું જાહેર ક્રોલ તે રિટર્ન મૂલ્ય માટે HTTP પ્રોક્સી યાદીમાંથી HTTP ઉમેદવારો લઈ શકે છે.

None પાછું આપવાથી બાકીનું વિનંતી મિડલવેર અને ડાઉનલોડર આગળ વધી શકે છે. બીજું Request પાછું આપવું ત્યારે ઉપયોગી છે જ્યારે તમે ઇરાદાપૂર્વક કામ બદલો છો અથવા ફરી પ્રયાસ કરો છો, પણ તેને કારણ અને નિકાસની શરતની જરૂર છે.

દર વખતે એ જ વિનંતી પાછી આપતું રોટેટર ક્યારેય લક્ષ્ય સાથે જોડાણ કર્યા વિના પોતાનો પસંદગી કોડ વારંવાર ચલાવી શકે છે. ટાઇમઆઉટ વધારવાથી કે વધુ પ્રોક્સી પોર્ટ ખોલવાથી તે નિયંત્રણ-પ્રવાહ લૂપ સુધરતું નથી.

મિડલવેર પ્રવેશ, રિટર્ન વર્તન અને પ્રથમ વાસ્તવિક નેટવર્ક પ્રયાસને અલગ ઘટનાઓ તરીકે તપાસો. “પ્રોક્સી પસંદ થયું” કહેતી લોગ લાઇન ફક્ત એ સાબિત કરે છે કે સિલેક્ટર ચાલ્યું. તે સાબિત કરતી નથી કે પસંદ કરેલા એન્ડપોઇન્ટ સાથે વિનંતી મોકલાઈ હતી.

Artigos relacionados