Scrapy-র প্রক্সি এন্ডপয়েন্ট ও সংযোগ IP পড়া
নির্বাচিত প্রক্সির জন্য রিকোয়েস্ট মেটাডেটা ব্যবহার করুন, response.ip_address-কে হ্যান্ডলার-প্রদত্ত পিয়ার তথ্য হিসেবে ধরুন এবং গন্তব্যে এক্সিট IP যাচাই করুন।
সম্পন্ন রেসপন্সের সাথে যুক্ত Request ব্যবহার করে তার নির্বাচিত রুট দেখুন। তিনটি পর্যবেক্ষণ আলাদা রাখুন:
| ফিল্ড | অর্থ |
|---|---|
response.request.meta.get('proxy') | এই রিকোয়েস্টের নির্বাচিত প্রক্সি URL, যদি থাকে |
response.ip_address | ডাউনলোড হ্যান্ডলার-প্রদত্ত ঠিকানা, হতে পারে None |
| একটি বিশ্বস্ত গন্তব্যের উৎস প্রতিবেদন | সেখানে পর্যবেক্ষিত পাবলিক উৎস |
কলব্যাকের ভিতরে, ক্রেডেনশিয়ালযুক্ত URL অংশ রুটিন ডায়াগনস্টিকস থেকে বাদ দিন:
from urllib.parse import urlsplit
proxy = response.request.meta.get('proxy')
proxy_host = urlsplit(proxy).hostname if proxy else None
self.logger.info(
'target_host=%s proxy_host=%s peer_ip=%s',
urlsplit(response.url).hostname, proxy_host, response.ip_address,
)Scrapy 2.13.3-এর HTTP/1.1 হ্যান্ডলারে ঠিকানাটি আসে রেসপন্স সংযোগের পিয়ার থেকে, এক্সিট-IP সেবা থেকে নয়। কিছু পথ, শূন্য-দৈর্ঘ্যের রেসপন্সসহ, এটিকে None রাখতে পারে। অন্য হ্যান্ডলার ভিন্নভাবে এটি পূরণ করতে পারে। None নিজে থেকে সরাসরি রাউটিং প্রমাণ করে না।
এক্সিট যাচাইয়ের জন্য উদ্দিষ্ট প্রক্সি নীতির অধীনে একটি বিশ্বস্ত এন্ডপয়েন্টে কোয়েরি করুন এবং রিকোয়েস্টের পরিচয় পর্যবেক্ষণের সাথে রাখুন। ঘূর্ণায়মান মিডলওয়্যার পরবর্তী যাচাইকে অন্য এন্ডপয়েন্ট দিতে পারে।
রিডাইরেক্টও আরেকটি রিকোয়েস্ট তৈরি করে। চূড়ান্ত মেটাডেটা সেই ধাপটি বর্ণনা করে; প্রথম URL-এর রুটের প্রমাণ হিসেবে ধরে নেওয়ার বদলে রিডাইরেক্ট ইতিহাস ও মিডলওয়্যারের যেকোনো পুনর্নির্বাচন দেখুন।