Scrapy کولی شي د تعقیبولو دمخه لیږد وښیې
د غوښتنې میټاډیټا له لارې د پروکسي GET لومړنی د لیږد حالت او Location په لنډمهاله توګه ښکاره کړئ، د لیږد اداره کول له HTTP-تېروتنې فلټر کولو جلا وساتئ.
د پروکسي GET کولی شي یو سرور ته ورسیږي او بیا لیږدونه تعقیب کړي تر څو چې وروستی ناکامي لومړنی ځواب پټ کړي. د تشخیص لپاره هغه لومړنی ځواب ښکاره کړئ:
request = scrapy.Request(
'https://service.example/page',
callback=inspect_redirect,
meta={
'proxy': 'http://proxy.example:8080',
'dont_redirect': True,
'handle_httpstatus_list': [301, 302, 303, 307, 308],
},
)
دا غوښتنه د سپایډر د موجوده start یا callback جریان له لارې مهالویش کړئ. د اجازه ورکړل شوې عامه پاڼې ازموینې لپاره، د HTTP پروکسي لیست د غوښتنې د پروکسي URL لپاره نوماندان وړاندې کوي. inspect_redirect باید د ځواب حالت او Location سرلیک ثبت کړي، نه دا چې بیا یې په ړوند ډول تعقیب کړي.
dont_redirect د دې غوښتنې لپاره اتوماتیک لیږد بندوي. handle_httpstatus_list نومول شوو حالتونو ته اجازه ورکوي چې callback ته ورسیږي، پرځای د دې چې د HTTP-تېروتنې فلټر کولو له خوا رد شي. دا تنظیمات د middleware مختلفو مسؤلیتونو پورې اړه لري.
وګورئ چې لیږد څه غوره کوي: پلان شوی کانونیکي URL، بل سکیم یا کوربه نوم، د ننوتلو پاڼه، یا تکراري دوره. د بریالي انتقال وروسته ترلاسه شوی 302 د پروکسي اړیکې د نه خلاصیدو څخه جلا مشاهده ده.
کله چې د لیږد نورمال اداره بیرته راشي، Scrapy په ځواب کې د غوښتنې میټاډیټا کې redirect_urls او redirect_reasons ښکاره کوي. دا کولی شي د ټول کرال لپاره لیږدونه بند پرې نه ږدي او وروستي پایلې ته لاره وساتي.
وروستی ځواب په اتوماتیک ډول هغه پاڼه نه ده چې غوښتنلیک یې اراده درلوده. منزل او د ځواب منځپانګه د لارې تشخیص سره یوځای وساتئ.