Scrapy прокси төгсгөлийн цэг ба холболтын IP-г унших
Сонгосон проксид хүсэлтийн мета өгөгдлийг ашиглаж, response.ip_address-г боловсруулагчийн өгсөн хос талын мэдээлэл гэж үзэж, очих газарт гарах IP-г шалгана.
Сонгосон замыг шалгахдаа дууссан хариултад хавсарсан Request-г ашиглана. Гурван ажиглалтыг тусад нь байлгана:
| Талбар | Утга |
|---|---|
response.request.meta.get('proxy') | Энэ хүсэлтийн сонгосон прокси URL, байгаа бол |
response.ip_address | Татах боловсруулагчийн өгсөн хаяг, None байж болно |
| Итгэмжлэгдсэн очих газрын эх сурвалжийн тайлан | Тэнд ажиглагдсан нийтийн эх сурвалж |
Callback дотор нэвтрэх мэдээлэл агуулсан 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 өөрөө шууд чиглүүлэлтийг батлахгүй.
Гарахыг шалгахын тулд төлөвлөсөн прокси бодлогын дагуу итгэмжлэгдсэн төгсгөлийн цэгээс асуугаад хүсэлтийн таних мэдээллийг ажиглалттай хамт хадгална. Эргэлдэх middleware дараагийн шалгалтад өөр төгсгөлийн цэг өгч болно.
Дахин чиглүүлэлт нь бас өөр хүсэлт үүсгэдэг. Эцсийн мета өгөгдөл тэр үе шатыг тодорхойлдог; эхний URL-ын замд нотолгоо гэж үзэхийн оронд дахин чиглүүлэлтийн түүх болон middleware-ийн дахин сонголтыг шалгана.