1. Mengapa anti-crawler?
Sebelum mereka bentuk sistem anti-crawler, mari kita lihat dahulu apakah masalah yang akan dibawa oleh perangkak ke tapak web?
Intipati Secara umumnya, laman web di Internet yang boleh dilayari, dilihat dan digunakan oleh orang ramai dan data di laman web itu terbuka dan boleh diakses, jadi tidak ada masalah yang dipanggil "akses dibenarkan secara haram".
Tiada perbezaan penting antara program perangkak yang mengakses halaman web dan manusia yang mengakses halaman web Dalam kedua-dua kes, pelanggan memulakan permintaan HTTP ke pelayan laman web tersebut, pelayan laman web mengembalikan a respons kandungan kepada pelanggan.
Selagi permintaan dimulakan, pelayan tapak web mesti bertindak balas, sumber pelayan mesti digunakan.
Terdapat hubungan yang saling menguntungkan antara pelawat laman web dan laman web ini menyediakan pelawat dengan maklumat dan perkhidmatan yang diperlukan, dan pelawat juga membawa trafik, pelawat, Aktiviti. Oleh itu, pemilik laman web akan bersedia menggunakan lebar jalur pelayan, cakera dan memori untuk melayani pelawat mereka.
Dan bagaimana pula dengan program crawler ia sama dengan pelacuran secara percuma. Menggandakan sumber pelayan laman web dan menduduki lebar jalur pelayan tidak akan membawa apa-apa faedah kepada tapak web Malah, keputusan akhir akan membahayakan laman web itu sendiri.
Perangkak mungkin dianggap sebagai dubuk Afrika di Internet, dan tidak hairanlah mereka dibenci oleh pemilik tapak web.
2. Kenal pasti perangkak
Memandangkan anda benci perangkak, anda harus menjauhkan mereka daripada tapak web. Untuk menafikan akses perangkak, anda mesti mengenal pasti dahulu program perangkak dalam kalangan pelawat rangkaian. Bagaimana untuk mengenal pastinya?
1. Pengepala permintaan HTTP
Pelawat rangkaian umum akan menggunakan penyemak imbas untuk mengakses tapak web, jadi pengenalan ini adalah untuk Reptilia rangkaian yang paling asas. Penyemak imbas akan membawa pengepala permintaannya sendiri untuk menunjukkan maklumat asasnya. Pengepala permintaan HTTP mudah dipecahkan oleh perangkak kerana sesiapa sahaja boleh mengubah suai dan memalsukannya.
2. Nilai kuki
Kuki biasanya digunakan untuk mengenal pasti pelawat tapak web, sama seperti kad pengenalan sementara di tangan anda. Dan berdasarkan ini, identiti itu disahkan dengan pelayan laman web. Malangnya, kuki disimpan di bahagian pelanggan dan boleh diubah suai dan dipalsukan.
3. Kekerapan akses
Apabila pelawat meminta halaman tertentu tapak web setiap saat, atau meminta halaman ini ratusan kali dalam beberapa saat. Pelawat ini sama ada perayap atau hantu. Manusia manakah yang boleh mengklik tetikus dengan cepat dan kerap untuk melawat halaman? Adakah dia mempunyai penyakit Parkinson atau adakah dia penjelmaan semula sotong?
Adalah boleh untuk mengenal pasti perangkak mengikut kekerapan akses, tetapi perangkak juga boleh menggunakan sejumlah besar IP proksi untuk mencapai kesan hanya mengakses alamat IP sekali, dan juga boleh dielakkan oleh selang permintaan rawak.
4. Trajektori tingkah laku tetikus
Apabila pelawat manusia biasa melayari halaman web, mereka tidak menggerakkan tetikus dan mengklik langkah demi langkah seperti mesin. Pergerakan dan klik tetikus boleh ditangkap melalui skrip JS, jadi anda boleh menilai sama ada pelawat adalah program perangkak dengan menilai trajektori gelagat tetikus pelawat.
5. Nilai token
Banyak tapak web kini menggunakan kaedah pembangunan pemisahan bahagian hadapan dan bahagian belakang Antara muka bahagian belakang mengembalikan data ke hadapan -akhir, dan bahagian hadapan menggabungkannya selepas mendapat data Halaman itu dipaparkan. Oleh itu, banyak program perangkak terus mencari antara muka data dan bukannya meminta halaman secara bodoh. Token digunakan untuk mengesahkan antara muka data bahagian belakang ini. Biasanya, Token disulitkan oleh gabungan kekunci masa dan halaman web.
Terdapat lebih banyak cara untuk mengenal pasti perangkak, yang saya tidak akan perkenalkan satu persatu di sini. Malangnya, tidak kira kaedah di atas yang digunakan untuk mengenal pasti perangkak web, sentiasa ada risiko untuk ditipu atau ditembusi oleh perangkak.
3. Tolak perangkak
Sama seperti tiada perlindungan keselamatan tapak web sekali-sekali, menutup port 3389 sepuluh tahun yang lalu boleh menghalang pelayan daripada menjadi bot . Pada masa kini, pelbagai Pelbagai firewall dan pelbagai langkah keselamatan telah ditambah, dan ia mungkin diperas kerana kerentanan 0Hari.
Selalu ada perjuangan dan peningkatan antara crawler dan anti-crawler. Perbezaan antara serangan siber dan pertahanan dan anti-merangkak ialah yang pertama adalah pertarungan tanpa halangan, manakala yang kedua melibatkan sarung tangan dan topi keledar seperti petinju yang bertanding di Sukan Olimpik.
Untuk mengendalikan laman web, perlu membuka kandungan kepada dunia luar, dan kandungan terbuka seperti bau bangkai dan darah yang melayang di padang rumput Afrika, secara langsung menarik kedatangan dubuk.
Adalah satu perkara yang sukar untuk mengimbangi antara kandungan terbuka dan mengelak daripada menjadi kumpulan perlombongan data untuk perangkak.
1. Hadkan pembukaan kandungan
Kandungan terbuka adalah asas untuk memperoleh pengguna dan trafik, jadi kandungan mesti terbuka. Tetapi keterbukaan kandungan bukanlah keterbukaan tanpa had. Pengguna yang tidak berdaftar boleh melihat satu atau dua bahagian kandungan, tetapi tidak mempunyai akses tanpa had kepada semua kandungan. Sekatan ini boleh berbentuk mekanisme pengesahan klik seperti log masuk, pengesahan kod imbasan atau akses kepada kod pengesahan Google.
Lebih banyak laman web telah menggunakan mekanisme pembukaan kandungan terhad, seperti Weibo, Zhihu, Taobao, dll. Anda boleh melihat satu atau dua halaman kandungan, tetapi jika anda masih mahu meneruskan, Maaf, sila log masuk.
2. Secara tingkah laku merekod operasi pengguna
Memerlukan pelawat log masuk tidak menyelesaikan masalah, kerana log masuk simulasi sentiasa menjadi cabang pembangunan program perangkak web yang popular, sama ada ia pengesahan imej Kod, teka-teki, peluncur atau mengklik aksara Cina semuanya akan dipecahkan. Menulis APP dan program perangkak boleh membenarkan kod pengesahan SMS berkomunikasi dengan tapak web.
Jadi merekodkan gelagat pengguna adalah penting Semua operasi pengguna dan gelagat akses perlu direkodkan Ini adalah asas untuk menganalisis dan memproses perangkak.
3. Tuntaskan dengan tegas tingkah laku frekuensi tinggi dari segi kawalan
Malah, terdapat juga banyak program perangkak yang tidak dijalankan untuk menggali data dan kandungan tapak web , hanya untuk memudahkan kerja pengumpulan dan pengisihan secara manual, gelagat perangkak jenis ini biasanya lebih tinggi daripada kekerapan penyemakan imbas manual, tetapi jauh lebih rendah daripada perangkak frekuensi tinggi seperti dubuk abaikan je. Teruskan satu barisan dalam hidup anda supaya kita boleh bertemu lagi di masa hadapan.
Walau bagaimanapun, langkah mesti diambil untuk tingkah laku perangkak frekuensi tinggi yang menjejaskan pengendalian pelayan tapak web. Menggabungkan maklumat pengguna dan IP untuk memproses pengguna atau IP yang berkaitan.
4. Pengisytiharan hak dalam perjanjian
Pemilik tapak web mesti mengisytiharkan dalam perjanjian laman web atau perjanjian pengguna bahawa penyemakan imbas biasa, akses dan pemerolehan data dibenarkan , dan untuk pengecualian , kekerapan tinggi dan mengancam kestabilan pelayan tapak web, kami akan berhak untuk memproses selanjutnya.
Atas ialah kandungan terperinci Apakah mata pengetahuan Python anti-crawler?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!