Alamat proksi berubah dalam log. Destinasi tidak pernah muncul dalam log akses proksi. Semak sama ada middleware anda membenarkan permintaan itu sampai kepada pemuat turun.

Dalam middleware pemuat turun Scrapy, memulangkan Request bermaksud menjadualkan semula permintaan itu. Ia tidak bermaksud “teruskan menghantar objek ini dengan metadata yang baru saya ubah”.

Bagi pemilih yang hanya memilih laluan, bentuk pentingnya ialah:

def process_request(self, request):
    request.meta['proxy'] = self.choose_proxy()
    return None

Coretan ini menunjukkan bentuk cangkuk semasa; gunakan antara muka middleware yang disokong oleh keluaran Scrapy yang dipasang. Pemilih mesti memulangkan titik akhir yang sah dan mengendalikan kumpulan yang tidak tersedia secara jelas. Crawl awam yang membenarkan perantara awam boleh mengambil calon HTTP daripada senarai proksi HTTP untuk nilai pulangan itu.

Memulangkan None membenarkan middleware permintaan yang tinggal dan pemuat turun meneruskan. Memulangkan Request lain berguna apabila anda menggantikan atau mencuba semula kerja secara sengaja, tetapi ia memerlukan sebab dan syarat keluar.

Pemutar yang memulangkan permintaan yang sama setiap kali boleh menjalankan kod pemilihannya berulang kali tanpa pernah membuat sambungan ke destinasi. Menaikkan had masa atau membuka lebih banyak port proksi tidak dapat membaiki gelung aliran kawalan itu.

Periksa kemasukan middleware, tingkah laku pulangan dan percubaan rangkaian sebenar yang pertama sebagai peristiwa berasingan. Baris log yang menyatakan “proksi dipilih” hanya membuktikan pemilih telah dijalankan. Ia tidak membuktikan permintaan dengan titik akhir yang dipilih telah dihantar.

Artikel berkaitan