scrapy-proxy-pool: ដោះស្រាយការឆ្លើយតបបែបប្រព័ន្ធគោលពីរក្នុងការរកឃើញការហាមឃាត់
កំណត់ការត្រួតពិនិត្យលំនាំអត្ថបទរបស់ scrapy-proxy-pool ទៅ TextResponse ខណៈរក្សាការសម្រេចចិត្តស្តីពីស្ថានភាព និងតួទទេ។
PDF ឬរូបភាពអាចមកដល់ដោយជោគជ័យតាមរយៈប្រូកស៊ី បន្ទាប់មកបរាជ័យនៅក្នុងការរកឃើញការហាមឃាត់។ Response មូលដ្ឋានរបស់ Scrapy បង្ហាញបៃតួ ប៉ុន្តែលក្ខណៈ 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 ដែលទទេដោយចេតនា ឬកំហុសគោលដៅធម្មតា មិនមែនជាភស្តុតាងថាប្រូកស៊ីអាក្រក់ជានិច្ចទេ។ ទុក middleware ឱ្យដំណើរការ ហើយផ្លាស់ប្តូរចំណាត់ថ្នាក់ដែលបណ្តាលឱ្យបរាជ័យ ជំនួសឱ្យបិទការរកឃើញការហាមឃាត់ទាំងអស់សម្រាប់ការទាញយកបែបប្រព័ន្ធគោលពីរ។