Bagaimana cara mendeteksi bot mesin pencari menggunakan php?
php
web-crawler
bots
hebat
sumber
sumber
strpos
kembali jikaFALSE
gagal juga. Ini lebih cepat dan lebih efisien, meskipun (tanpa pemrosesan awal, dan tidak ada penyimpanan O (m)).Saya menggunakan kode berikut yang tampaknya berfungsi dengan baik:
perbarui 16-06-2017 https://support.google.com/webmasters/answer/1061943?hl=id
tambah mediapartners
sumber
Periksa
$_SERVER['HTTP_USER_AGENT']
beberapa string yang tercantum di sini:http://www.useragentstring.com/pages/useragentstring.php
Atau lebih khusus untuk crawler:
http://www.useragentstring.com/pages/useragentstring.php?typ=Crawler
Jika Anda ingin -mengatakan- mencatat jumlah kunjungan crawler mesin pencari yang paling umum, Anda dapat menggunakan
sumber
Anda dapat melakukan pembayaran jika itu adalah mesin pencari dengan fungsi ini:
Kemudian Anda bisa menggunakannya seperti:
sumber
Saya menggunakan ini untuk mendeteksi bot:
Selain itu, saya menggunakan daftar putih untuk memblokir bot yang tidak diinginkan:
Bot yang tidak diinginkan (= pengguna positif palsu) kemudian dapat memecahkan captcha untuk membebaskan dirinya sendiri selama 24 jam. Dan karena tidak ada yang memecahkan captcha ini, saya tahu itu tidak menghasilkan positif palsu. Jadi, deteksi bot sepertinya bekerja dengan sempurna.
Catatan: Daftar putih saya didasarkan pada robots.txt Facebook .
sumber
)
pada bagian kode pertama Anda.Karena klien mana pun dapat menyetel agen pengguna ke apa yang mereka inginkan, mencari 'Googlebot', 'bingbot', dll hanyalah setengah dari pekerjaan.
Bagian kedua adalah memverifikasi IP klien. Di masa lalu, ini memerlukan pemeliharaan daftar IP. Semua daftar yang Anda temukan online sudah usang. Mesin pencari teratas secara resmi mendukung verifikasi melalui DNS, seperti yang dijelaskan oleh Google https://support.google.com/webmasters/answer/80553 dan Bing http://www.bing.com/webmaster/help/how-to-verify -bingbot-3905dc26
Pertama-tama lakukan pencarian DNS terbalik dari IP klien. Untuk Google, ini membawa nama host di bawah googlebot.com, untuk Bing di bawah search.msn.com. Kemudian, karena seseorang dapat mengatur DNS terbalik pada IP-nya, Anda perlu memverifikasi dengan pencarian DNS maju pada nama host tersebut. Jika IP yang dihasilkan sama dengan salah satu pengunjung situs, Anda yakin itu adalah crawler dari mesin pencari tersebut.
Saya telah menulis perpustakaan di Java yang melakukan pemeriksaan ini untuk Anda. Jangan ragu untuk mentransfernya ke PHP. Ada di GitHub: https://github.com/optimaize/webcrawler-verifier
sumber
Saya menggunakan fungsi ini ... bagian dari regex berasal dari prestashop tetapi saya menambahkan beberapa bot lagi ke dalamnya.
Pokoknya berhati-hatilah karena beberapa bot menggunakan browser seperti agen pengguna untuk memalsukan identitas mereka
(saya mendapat banyak ip rusia yang memiliki perilaku ini di situs saya)
Salah satu fitur khas dari sebagian besar bot adalah bot tidak membawa cookie apa pun sehingga tidak ada sesi yang dilampirkan padanya.
(Saya tidak yakin bagaimana tetapi ini pasti cara terbaik untuk melacak mereka)
sumber
Anda dapat menganalisis agen pengguna (
$_SERVER['HTTP_USER_AGENT']
) atau membandingkan alamat IP klien ($_SERVER['REMOTE_ADDR']
) dengan daftar alamat IP bot mesin telusur .sumber
Gunakan pustaka sumber terbuka Detektor Perangkat, ia menawarkan fungsi isBot (): https://github.com/piwik/device-detector
sumber
Itu akan menjadi cara ideal untuk berjubah bagi laba-laba. Ini dari skrip open source yang disebut [YACG] - http://getyacg.com
Perlu sedikit usaha, tapi pasti cara yang harus ditempuh.
sumber
Saya membuat satu fungsi yang bagus dan cepat untuk ini
Ini mencakup 99% dari semua bot, mesin pencari, dll.
sumber
Saya menggunakan kode ini, cukup bagus. Anda akan sangat mudah mengetahui agen-pengguna mengunjungi situs Anda. Kode ini membuka file dan menulis user_agent ke bawah file tersebut. Anda dapat memeriksa file ini setiap hari dengan pergi ke
yourdomain.com/useragent.txt
dan mengetahui tentang user_agents baru dan meletakkannya dalam kondisi klausa if Anda.Ini adalah konten useragent.txt
sumber
Detektor Bot 100% Bekerja. Ini berhasil di situs web saya dengan sukses.
sumber
Jika Anda benar-benar perlu mendeteksi bot mesin GOOGLE, Anda tidak boleh mengandalkan alamat "user_agent" atau "IP" karena "user_agent" dapat diubah dan sesuai dengan apa yang dikatakan google di: Memverifikasi Googlebot
Ini kode saya yang diuji:
Dalam kode ini kita memeriksa "nama host" yang seharusnya mengandung "googlebot.com" atau "google.com" di akhir "nama host" yang sangat penting untuk memeriksa domain tepatnya bukan subdomain. Saya harap kamu menikmatinya ;)
sumber
Untuk Google saya menggunakan metode ini.
Kredit: https://support.google.com/webmasters/answer/80553
sumber
sumber