Anonim

Saya menjalankan laman web untuk pelanggan di mana mereka memaparkan maklumat pangkalan data yang besar yang mereka telah berkumpul dengan tepat dan perlahan selama bertahun-tahun. Mereka mencari data mereka di seluruh web di pelbagai tempat. Lebih daripada mungkin disebabkan oleh pengikis melalui laman laman mereka dengan halaman dan mengekstrak maklumat yang mereka perlukan ke dalam pangkalan data mereka sendiri. Dan sekiranya anda tertanya-tanya, mereka tahu data itu kerana satu data yang ditanam dalam setiap kategori di laman web mereka.

Saya telah melakukan banyak penyelidikan mengenai ini beberapa hari lalu, dan saya boleh memberitahu anda bahawa tidak ada satu penyelesaian yang lengkap. Saya telah menemui beberapa perkara yang perlu dilakukan untuk membuat perkara ini lebih sukar untuk mereka. Inilah yang saya lakukan untuk pelanggan.

Data paginated Ajaxified

Jika anda mempunyai banyak data paginated, dan anda mengkilam data anda dengan memasukkan nombor yang berbeza pada akhir URL anda iaitu http://www.domain.com/category/programming/2 - Kemudian anda membuat kerja crawler yang lebih mudah. Masalah pertama adalah, dalam corak yang mudah dikenal pasti, jadi menetapkan pengikis longgar di halaman-halaman ini mudah seperti pai. Masalah kedua, tanpa mengira URL laman-laman berikutnya dalam kategori itu, lebih banyak kemungkinan akan terdapat pautan berikutnya dan sebelumnya untuk mereka melekat.

Dengan memuatkan data paginated melalui javascript tanpa memuatkan halaman, ini secara signifikan merumitkan pekerjaan untuk banyak pengikis di luar sana. Baru-baru ini Google sendiri mula menguraikan javascript pada halaman. Terdapat sedikit kelemahan untuk memuat semula data seperti ini. Anda menyediakan beberapa halaman yang kurang untuk Google untuk indeks, tetapi, secara teknikal, data paginated harus semua menunjuk ke halaman kategori root melalui kanonikisasi pula. Ajaxify halaman paged data anda.

Rujuk output template

Pengikis akan sering disesuaikan untuk data anda secara khusus. Mereka akan melekat pada div atau kelas div tertentu untuk tajuk, sel ke-3 dalam setiap baris untuk penerangan anda, dan lain-lain. Terdapat corak yang mudah dikenal pasti bagi kebanyakan pengikis untuk berfungsi sebagai kebanyakan data yang datang dari jadual yang sama, dipaparkan oleh templat yang sama. Rawakkan id dan nama kelas anda, masukkan lajur jadual kosong secara rawak dengan 0 lebar. Paparkan data anda dalam jadual pada satu halaman, dalam div gaya dan gabungan pada templat lain. Dengan membentangkan data anda secara rawak, ia boleh dikikis secara tepat dan tepat.

HoneyPot

Ini cukup kemas dalam kesederhanaannya. Saya telah menemui kaedah ini di beberapa halaman tentang mencegah pengikatan tapak.

  • Buat fail baru pada pelayan anda yang dipanggil gotcha.html.
  • Dalam fail robots.txt anda, tambah yang berikut:
    Agen-pengguna: *
    Tidak membenarkan: /gotcha.html

    Ini memberitahu semua robot dan labah-labah di luar sana mengindeks laman web anda untuk tidak mengindeks file gotcha.html. Mana-mana crawler web biasa akan menghormati kehendak fail robots.txt anda dan tidak mengakses fail itu. iaitu, Google dan Bing. Anda sebenarnya mungkin mahu melaksanakan langkah ini, dan tunggu 24 jam sebelum pergi ke langkah seterusnya. Ini akan memastikan bahawa crawler tidak sengaja disekat oleh anda kerana fakta bahawa ia telah merayap tengah ketika anda memperbarui file robots.txt anda.
  • Letakkan pautan ke gotcha.html di suatu tempat di laman web anda. Tidak kira di mana. Saya akan mencadangkan di footer, bagaimanapun, pastikan pautan ini tidak kelihatan, dalam CSS, paparan: tiada;
  • Sekarang, log maklumat IP / umum pel yang melawat halaman ini dan blok mereka. Sebagai alternatif, anda boleh membuat skrip untuk menyediakannya dengan data yang salah dan sampah. Atau mungkin mesej peribadi yang baik dari anda kepada mereka.

Penonton web biasa tidak akan dapat melihat pautan itu, jadi ia tidak akan diklik secara tidak sengaja. Crawler bereputasi (Google misalnya), akan menghormati hasrat robots.txt anda dan tidak melawat fail tersebut. Jadi, satu-satunya komputer yang sepatutnya tersandung di laman web ini adalah mereka yang mempunyai niat jahat, atau seseorang melihat kod sumber anda dan mengklik secara rawak (dan juga jika ia berlaku).

Terdapat beberapa sebab ini mungkin tidak selalu berfungsi. Pertama, banyak pengikis tidak berfungsi seperti perayap web biasa, dan jangan hanya mencari data dengan mengikuti setiap pautan dari setiap halaman di laman web anda. Pengikis sering dibina untuk menetapkan pada halaman tertentu dan hanya mengikut struktur tertentu. Sebagai contoh, pengikis mungkin dimulakan pada halaman kategori, dan kemudian diberitahu hanya untuk melawat URL dengan perkataan / data dalam slug. Kedua, jika seseorang menjalankan pengikisnya pada rangkaian yang sama seperti yang lain, dan terdapat IP yang digunakan, anda akan melarang seluruh rangkaian. Anda perlu mempunyai laman web yang sangat popular kerana ini menjadi masalah.

Tulis data dengan imej dengan cepat

Cari medan data yang lebih kecil, tidak semestinya rentetan teks kerana ini boleh membuat gaya halaman sedikit lebih sukar. Output data ini di dalam imej, saya rasa agak yakin ada kaedah dalam hampir setiap bahasa pengaturcaraan untuk menulis teks ke gambar secara dinamik (dalam php, imagettftext). Ini mungkin paling berkesan dengan nilai berangka kerana nombor memberikan kelebihan SEO yang tidak penting.

Alternatif

Ini bukan pilihan untuk projek ini. Memerlukan log masuk selepas jumlah paparan halaman tertentu, atau memaparkan jumlah data yang terhad tanpa log masuk, iaitu, jika anda mempunyai 10 lajur, hanya memaparkan 5 kepada pengguna yang tidak log masuk.

Jangan buat kesilapan ini

Jangan repot-repot cuba datang dengan semacam penyelesaian berdasarkan ejen pengguna bot. Maklumat ini dengan mudah boleh ditipu oleh pengikis yang mengetahui apa yang mereka lakukan. Bot google contohnya boleh dengan mudah dicontohi. Anda lebih mungkin tidak mahu mengharamkan Google.

Mencegah pengikatan tapak