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 ئۆزىلا بىۋاسىتە يول باشلاشنى ئىسپاتلىمايدۇ.
چىقىشنى تەكشۈرۈش ئۈچۈن مۆلچەرلەنگەن ۋاكالەتچى سىياسىتى ئاستىدا ئىشەنچلىك ئاخىر نۇقتىدىن سوراڭ ۋە تەلەپنىڭ كىملىكىنى كۆزىتىش بىلەن بىرگە ساقلاڭ. ئايلانما ئوتتۇرا قاتلام كېيىنكى تەكشۈرۈشكە باشقا ئاخىر نۇقتا بېرەلەيدۇ.
قايتا يوللاشلار يەنە بىر تەلەپ پەيدا قىلىدۇ. ئاخىرقى مېتاداتا شۇ باسقۇچنى چۈشەندۈرىدۇ؛ بىرىنچى URL نىڭ يولىنىڭ ئىسپاتى دەپ قارىغاندىن كۆرە قايتا يوللاش تارىخى ۋە ئوتتۇرا قاتلامنىڭ ھەر قانداق قايتا تاللىشىنى تەكشۈرۈڭ.