Saya akan mengembangkan beberapa fungsionalitas yang akan merangkak berbagai situs web publik dan memproses / mengagregasi data pada mereka. Tidak ada yang menyeramkan seperti mencari alamat email - sebenarnya itu adalah sesuatu yang mungkin benar-benar mengarahkan lalu lintas tambahan ke situs mereka. Tapi saya ngelantur.
Selain menghormati robots.txt
, apakah ada aturan atau pedoman, tertulis atau tidak tertulis, yang harus saya ikuti untuk (a) menghindari terlihat berbahaya dan berpotensi dilarang, dan (b) tidak menimbulkan masalah bagi pemilik situs / webmaster?
Beberapa contoh yang dapat saya pikirkan yang mungkin atau mungkin tidak penting:
- Jumlah permintaan paralel
- Waktu antar permintaan
- Waktu antara seluruh penjelajahan
- Menghindari tautan yang berpotensi merusak (tidak ingin menjadi Spider of Doom - tetapi siapa yang tahu apakah ini praktis)
Tapi itu benar-benar hanya meludah; adakah kebijaksanaan yang sudah teruji dan diuji di luar sana yang secara luas berlaku bagi siapa saja yang berniat untuk menulis atau menggunakan laba-laba?
sumber
Jawaban:
Selain mematuhi robots.txt, patuhi
nofollow
dannoindex
dalam<meta>
elemen serta tautan:Ada banyak yang percaya robots.txt bukan cara yang tepat untuk memblokir pengindeksan dan karena sudut pandang itu, telah menginstruksikan banyak pemilik situs untuk mengandalkan
<meta name="robots" content="noindex">
tag untuk memberi tahu perayap web agar tidak mengindeks halaman.Jika Anda mencoba membuat grafik koneksi antara situs web (mirip dengan PageRank),
(dan
<meta name="robots" content="nofollow">
) seharusnya menunjukkan situs sumber tidak cukup mempercayai situs tujuan untuk memberikan dukungan yang tepat. Jadi, sementara Anda dapat mengindeks situs tujuan, Anda tidak harus menyimpan hubungan antara kedua situs.SEO lebih merupakan seni daripada sains nyata, dan dipraktikkan oleh banyak orang yang tahu apa yang mereka lakukan, dan banyak orang yang membaca ringkasan eksekutif orang-orang yang tahu apa yang mereka lakukan. Anda akan mengalami masalah di mana Anda akan diblokir dari situs untuk melakukan hal-hal yang menurut situs lain dapat diterima karena beberapa aturan yang didengar seseorang atau dibaca dalam posting blog tentang SEOmoz yang mungkin atau mungkin tidak ditafsirkan dengan benar.
Karena elemen manusia itu, kecuali Anda adalah Google, Microsoft, atau Yahoo !, Anda dianggap jahat kecuali terbukti sebaliknya. Anda perlu lebih berhati-hati untuk bertindak seolah-olah Anda bukan ancaman bagi pemilik situs web, dan bertindak sesuai dengan bagaimana Anda menginginkan perayap yang berpotensi jahat (tapi mudah-mudahan tidak berbahaya) untuk bertindak:
/admin/
di dalamnya, misalnya.Meskipun demikian, ini akan menjadi pertempuran yang berat kecuali jika Anda menggunakan teknik topi hitam seperti spoofing UA atau dengan sengaja menutupi pola perayapan Anda: banyak pemilik situs, untuk alasan yang sama di atas, akan memblokir perayap yang tidak dikenal saat melihat daripada mengambil kemungkinan ada seseorang yang tidak mencoba "meretas situs mereka". Bersiaplah untuk banyak kegagalan.
Satu hal yang dapat Anda lakukan untuk memerangi gambar negatif yang akan dimiliki perayap tak dikenal adalah membuatnya jelas dalam string agen pengguna Anda siapa Anda:
Di mana
http://example.com/aarobot.html
menjelaskan apa yang Anda coba capai dan mengapa Anda bukan ancaman. Halaman itu harus memiliki beberapa hal:Yang terakhir adalah kunci: penolakan yang baik adalah seperti Jaminan Uang Kembali ™ dan skor niat baik yang tidak masuk akal. Itu harus manusiawi: satu langkah sederhana (baik alamat email atau, idealnya, formulir) dan komprehensif (tidak boleh ada "gotcha": opt-out berarti Anda berhenti merangkak tanpa kecuali).
sumber
(+http://example.com/aarobot.html)
. Saya tidak tahu apa tujuan dari+
tanda itu di sini, tetapi saya sudah sering melihatnya. Web-Sniffer melakukannya, dan begitu juga banyak lainnya.rel="noindex"
seolah-olah itu adalah<a>
atribut, tetapi halaman yang Anda tautkan untuk menggambarkannya sebagai bagian dari atribut<meta>
tagcontent
. Apakah keduanya, atau apakah ini salah ketik dalam jawabannya?Meskipun ini tidak menjawab semua pertanyaan Anda, saya yakin ini akan membantu Anda dan situs yang Anda jelajahi.
Mirip dengan teknik yang digunakan untuk brute force situs web tanpa menarik perhatian, jika Anda memiliki kumpulan situs yang cukup besar yang perlu Anda jelajahi, jangan merangkak halaman berikutnya di situs sampai Anda merangkak halaman berikutnya dari semua situs lain . Nah, server modern akan memungkinkan koneksi HTTP digunakan kembali , jadi Anda mungkin ingin melakukan lebih dari satu untuk meminimalkan overhead, tetapi idenya masih berlaku. Jangan merayapi satu situs hingga habis sampai Anda pindah ke yang berikutnya . Berbagi kasih.
Untuk Anda di akhir hari, Anda masih dapat merangkak seperti banyak halaman, tetapi rata-rata penggunaan bandwidth pada satu situs akan jauh lebih rendah.
Jika Anda ingin menghindari menjadi laba-laba malapetaka, tidak ada metode pasti. Jika seseorang ingin menempelkan kacang di hidungnya , mereka akan dan mungkin melakukannya dengan cara yang tidak pernah bisa Anda prediksi. Karena itu, jika Anda tidak keberatan melewatkan halaman yang valid sesekali, miliki daftar hitam kata-kata untuk tautan yang akan mencegah Anda untuk mengikutinya. Sebagai contoh:
Bukan bukti bodoh, tetapi kadang-kadang Anda tidak bisa mencegah orang dari harus belajar dengan cara yang sulit;)
sumber
robots.txt
sudah disebutkan dalam pertanyaan, dan dapat dianggap telah diambil.Salah satu saran saya adalah mendengarkan apa yang dikatakan situs web yang Anda jelajahi, dan secara dinamis ubah penjelajahan Anda sebagai reaksi terhadap hal itu.
Apakah situsnya lambat? Perayapan lebih lambat sehingga Anda tidak melakukannya. Apakah ini cepat? Merayap sedikit lagi, kalau begitu!
Apakah situsnya salah? Merayapi lebih sedikit sehingga Anda tidak membuat stres situs yang sudah dipaksa. Gunakan waktu coba-coba yang meningkat secara eksponensial, sehingga Anda mencoba semakin sedikit semakin lama situs melakukan kesalahan. Tetapi ingat untuk mencoba kembali nanti, akhirnya, sehingga Anda dapat melihat apa pun yang Anda lewatkan karena, katakanlah, kesalahan selama seminggu di jalur URL tertentu.
Mendapat banyak 404-an? (ingat, 404 halaman mewah kami juga membutuhkan waktu di server!) Hindari merayapi URL lebih lanjut dengan jalur itu untuk saat ini karena mungkin semua yang ada hilang; jika
file001.html
-file005.html
tidak ada di sana, saya yakin Anda dolar untuk donatfile999.html
juga tidak! Atau mungkin mengecilkan persentase waktu Anda mengambil apa pun di jalur itu.Saya pikir ini adalah di mana banyak crawler yang naif menjadi sangat salah, dengan memiliki satu strategi robot yang mereka keluarkan sama terlepas dari sinyal yang mereka dapatkan dari situs target.
Perayap cerdas reaktif ke situs target yang disentuhnya.
sumber
Yang lain menyebutkan beberapa mantra, tetapi izinkan saya menambahkan beberapa.
Perhatikan jenis dan ukuran file. Jangan tarik binari besar ini.
Optimalkan untuk beberapa halaman "daftar direktori" server web yang khas. Secara khusus, mereka memungkinkan untuk mengurutkan untuk ukuran, tanggal, nama, izin, dan sebagainya. Jangan perlakukan setiap metode pengurutan sebagai root terpisah untuk perayapan.
Minta gzip (kompresi dengan cepat) kapan pun tersedia.
Batasi kedalaman atau deteksi rekursi (atau keduanya).
Batasi ukuran halaman. Beberapa halaman menerapkan tarpit untuk menggagalkan bot pengikis-email. Itu adalah halaman yang memuat dengan kecepatan siput dan panjang terabyte.
Jangan mengindeks 404 halaman. Mesin yang memiliki indeks terbesar melakukan hal ini, dan menerima kebencian yang layak diterima sebagai imbalan.
Ini mungkin sulit, tetapi cobalah untuk mendeteksi pertanian penyeimbang beban. Jika v329.host.com/pages/article.php?99999 mengembalikan sama dengan v132.host.com/pages/article.php?99999 jangan mengikis daftar lengkap server dari v001.host.com hingga v999. host.com
sumber
Saya hanya akan menambahkan satu hal kecil.
Hak cipta & masalah hukum lainnya: Saya tahu Anda menulisnya adalah situs web publik, jadi mungkin tidak ada hak cipta apa pun, tetapi mungkin ada masalah hukum lainnya untuk menyimpan data.
Ini tentu saja akan tergantung pada data negara mana yang Anda simpan (dan di mana Anda menyimpannya). Contoh kasus masalah dengan Undang-Undang Patriot AS vs Petunjuk Perlindungan Data UE. Ringkasan eksekutif dari masalahnya adalah bahwa perusahaan-perusahaan AS harus memberikan data mereka misalnya. FBI jika ditanya, tanpa memberi tahu pengguna tentang hal itu, di mana Petunjuk Perlindungan Data menyatakan bahwa pengguna harus diberitahu tentang hal ini. Se http://www.itworld.com/government/179977/eu-upset-microsoft-warning-about-us-access-eu-cloud
sumber
Panggil webcrawler Anda baik itu atau laba-laba, terkait dengan nama Anda. Ini penting. Mesin analitik dan sejenisnya mencari mereka yang mengaitkan Anda sebagai ... laba-laba. ;)
Cara saya melihat yang dilakukan adalah melalui header permintaan User-Agent
sumber
sumber