Scrapy પ્રોક્સી સેટિંગ્સ CrawlerProcess સ્ક્રિપ્ટમાં લોડ કરો
જ્યારે સ્વતંત્ર લોન્ચરે scrapy crawl જેવું જ ડાઉનલોડર મિડલવેર વાપરવું હોય ત્યારે get_project_settings() CrawlerProcessને આપો.
સ્પાઇડર scrapy crawl હેઠળ અપેક્ષિત પ્રોક્સી વાપરી શકે છે અને Python સ્ક્રિપ્ટ દ્વારા શરૂ થાય ત્યારે સીધું જાય છે. પ્રોક્સી સર્વર બદલતા પહેલાં તે સ્ક્રિપ્ટ તેની સેટિંગ્સ કેવી રીતે બનાવે છે તે તપાસો.
હાલના Scrapy પ્રોજેક્ટ અને તેના નોંધાયેલા સ્પાઇડર માટે:
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
settings = get_project_settings()
process = CrawlerProcess(settings=settings)
process.crawl('catalog')
process.start()
catalog ને પ્રોજેક્ટના સ્પાઇડર નામ સાથે બદલો. પ્રોજેક્ટ તેના scrapy.cfg દ્વારા, અથવા આયાત કરી શકાય તેવા સેટિંગ્સ મોડ્યુલ તરફ ઇશારો કરતા યોગ્ય રીતે સેટ કરેલા SCRAPY_SETTINGS_MODULE દ્વારા શોધી શકાય તેવો હોવો જોઈએ.
ફક્ત CrawlerProcess() બનાવવાથી પ્રોજેક્ટની સેટિંગ્સ ફાઇલ આયાત થતી નથી, કારણ કે સ્ક્રિપ્ટ સ્પાઇડર ક્લાસ પણ આયાત કરે છે એટલા માટે નહીં. પરિણામે DOWNLOADER_MIDDLEWARES દ્વારા સક્ષમ કસ્ટમ મિડલવેર તે રનમાં ગેરહાજર હોઈ શકે છે.
સેટિંગ્સ લોડ કરવાથી ગોઠવેલા ઘટકો મળે છે; તે પ્રોક્સી સરનામું શોધી કાઢતું નથી. Scrapyનું HTTP પ્રોક્સી મિડલવેર હજી પણ તેના સામાન્ય પર્યાવરણ પ્રોક્સી અથવા સ્પષ્ટ request.meta['proxy'] મૂલ્યની જરૂર ધરાવે છે. HTTPPROXY_ENABLED એ તેને અક્ષમ કર્યું નથી તે તપાસો. માન્ય જાહેર પૃષ્ઠ ક્રોલ માટે, HTTP પ્રોક્સી યાદી તે મેટાડેટા અથવા પર્યાવરણ દ્વારા આપવામાં આવતા HTTP પ્રોક્સી મૂલ્ય માટે ઉમેદવારો પ્રદાન કરે છે.
લોન્ચરની લોડ થયેલી સેટિંગ્સ અને સક્રિય મિડલવેરની કમાન્ડ-લાઇન રન સાથે સરખામણી કરો. જો તેઓ મેળ ખાય, તો પસંદ કરેલી વિનંતીના પ્રોક્સી મેટાડેટા અને વાસ્તવિક પરિવહન ભૂલ સાથે આગળ વધો.