Scrapy អាចបង្ហាញការបង្វែរមុនពេលដើរតាមវា
បង្ហាញជាបណ្ដោះអាសន្ននូវស្ថានភាពបង្វែរដំបូង និង Location នៃ GET តាម proxy តាមរយៈ metadata នៃសំណើ ដោយរក្សាការគ្រប់គ្រងការបង្វែរដាច់ដោយឡែកពីការត្រងកំហុស HTTP។
GET តាម proxy អាចឈានដល់ម៉ាស៊ីនមេ ហើយបន្ទាប់មកដើរតាមការបង្វែរ រហូតដល់ការបរាជ័យចុងក្រោយបាំងការឆ្លើយតបដំបូង។ បង្ហាញការឆ្លើយតបដំបូងនោះសម្រាប់ការធ្វើរោគវិនិច្ឆ័យ៖
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 ដែលមានស្រាប់របស់ spider។ សម្រាប់ការសាកល្បងទំព័រសាធារណៈដែលត្រូវបានអនុញ្ញាត បញ្ជី proxy HTTP ផ្ដល់បេក្ខជនសម្រាប់ URL proxy នៃសំណើ។ inspect_redirect គួរកត់ត្រាស្ថានភាពឆ្លើយតប និងក្បាល Location ជំនួសឱ្យការដើរតាមវាម្ដងទៀតដោយពិការភ្នែក។
dont_redirect បញ្ឈប់ការបង្វែរស្វ័យប្រវត្តិសម្រាប់សំណើនេះ។ handle_httpstatus_list អនុញ្ញាតឱ្យស្ថានភាពដែលបានកំណត់ឈ្មោះឈានដល់ callback ជំនួសឱ្យការត្រូវបានបដិសេធដោយការត្រងកំហុស HTTP។ ការកំណត់ទាំងនេះទាក់ទងនឹងការទទួលខុសត្រូវផ្សេងៗគ្នារបស់ middleware។
ពិនិត្យមើលថាតើការបង្វែរជ្រើសរើសអ្វី៖ URL canonical ដែលបានបម្រុងទុក គ្រោង ឬឈ្មោះ host ផ្សេង ទំព័រចូល ឬវដ្តដែលកើតឡើងម្ដងទៀត។ 302 ដែលទទួលបានបន្ទាប់ពីការផ្ទេរជោគជ័យគឺជាការសង្កេតខុសពីការបរាជ័យក្នុងការបើកការតភ្ជាប់ proxy។
នៅពេលការគ្រប់គ្រងការបង្វែរធម្មតាត្រូវបានស្ដារឡើងវិញ Scrapy បង្ហាញ redirect_urls និង redirect_reasons នៅក្នុង metadata សំណើរបស់ការឆ្លើយតប។ ពួកវាអាចរក្សាផ្លូវឆ្ពោះទៅលទ្ធផលចុងក្រោយ ដោយមិនទុកការបង្វែរឱ្យបិទសម្រាប់ការរាវរកទាំងមូល។
ការឆ្លើយតបចុងក្រោយមិនមែនជាទំព័រដែលកម្មវិធីបានបម្រុងទុកដោយស្វ័យប្រវត្តិទេ។ រក្សាគោលដៅ និងខ្លឹមសារឆ្លើយតបជាមួយការធ្វើរោគវិនិច្ឆ័យផ្លូវ។