Scrapy starpprogrammatūra starpniekserverim: Request un None atgrieztās vērtības
Pēc Scrapy starpniekservera piešķiršanas atdodiet vadību, nevis nejauši pārplānojiet to pašu pieprasījumu pirms lejupielādes.
Starpniekservera adrese žurnālā mainās. Galamērķis nekad neparādās starpniekservera piekļuves žurnālā. Pārbaudiet, vai jūsu starpprogrammatūra vispār ļauj pieprasījumam nonākt līdz lejupielādētājam.
Scrapy lejupielādētāja starpprogrammatūrā Request atgriešana nozīmē šī pieprasījuma pārplānošanu. Tas nenozīmē “turpiniet sūtīt šo objektu ar metadatiem, ko tikko mainīju”.
Selektoram, kas izvēlas tikai maršrutu, svarīgā forma ir:
def process_request(self, request):
request.meta['proxy'] = self.choose_proxy()
return None
Šis fragments parāda pašreizējo āķa formu; izmantojiet starpprogrammatūras saskarni, ko atbalsta instalētā Scrapy versija. Selektoram jāatgriež derīgs galapunkts un skaidri jāapstrādā nepieejams kopums. Publiska pārlūkošana, kas atļauj publiskus starpniekus, var ņemt HTTP kandidātus no HTTP starpniekserveru saraksta šai atgrieztajai vērtībai.
None atgriešana ļauj pārējai pieprasījuma starpprogrammatūrai un lejupielādētājam turpināt. Cita Request atgriešana ir noderīga, ja apzināti aizstājat vai atkārtojat darbu, taču tam vajadzīgs iemesls un izejas nosacījums.
Rotators, kas katru reizi atgriež to pašu pieprasījumu, var atkārtoti izpildīt savu atlases kodu, tā arī nenodibinot savienojumu ar galamērķi. Taimautu palielināšana vai papildu starpniekservera portu atvēršana nevar salabot šo vadības plūsmas cilpu.
Pētiet ieiešanu starpprogrammatūrā, atgriešanas uzvedību un pirmo faktisko tīkla mēģinājumu kā atsevišķus notikumus. Žurnāla rinda “starpniekserveris izvēlēts” pierāda tikai to, ka selektors darbojās. Tā nepierāda, ka tika nosūtīts pieprasījums ar izvēlēto galapunktu.