2016-10-12 3 views
6

हम अपने लेख पृष्ठों (जैसे स्टैक ओवरफ्लो में) के पृष्ठ दृश्य काउंटर जोड़ना चाहते हैं, लेकिन हम बॉट्स और क्रॉलर्स के पृष्ठ दृश्यों को जोड़ना नहीं चाहते हैं।2016 में बॉट्स और क्रॉलर को छोड़कर पृष्ठ दृश्य कैसे एकत्र करें?

मैंने काफी खोज की, और केवल बहुत ही अप्रचलित उत्तरों पाए गए जो कि AJAX अनुरोध को आग लगने के लिए कहते हैं, क्योंकि क्रॉलर और बॉट जावास्क्रिप्ट निष्पादित नहीं करते हैं ... ठीक है, यह 2016 है ... मुझे विश्वास है कि सभी प्रमुख क्रॉलर्स आजकल जावास्क्रिप्ट निष्पादित करें।

मैं के बारे में दो व्यवहार्य समाधान सोचा:

  1. सर्वर पर सभी ज्ञात बॉट और क्रॉलर्स उपयोगकर्ता एजेंटों की एक सूची रखें, और केवल मामले में काउंटर बढ़ाने के अनुरोध उनमें से एक की नहीं है (लगता है एक बहुत ही खराब समाधान की तरह क्योंकि सूची को नियमित रूप से बनाए रखा जाना चाहिए और नियमित रूप से अद्यतन किया जाना चाहिए, और संभवतः वहां कई लोग होंगे जो सूची नहीं पकड़ेगी)।
  2. robots.txt में अस्वीकृत किसी एंडपॉइंट पर अनुरोध भेजने के लिए AJAX का उपयोग करें। (या src="/article/track/?id=xxxxx" के साथ एक छिपी हुई छवि)

दूसरा विकल्प प्रति पृष्ठ एक और अनुरोध बनाता है, भयानक नहीं, लेकिन शायद एक बेहतर तरीका है? आज इसे संभालने का आम तरीका क्या है?

ASP.NET कोर का उपयोग करना और redis में पेज व्यू भंडारण करता है, तो यह मायने रखता है

+0

[अप्रचलित उत्तर का उदाहरण] (http://stackoverflow.com/q/17515381/601179) – gdoron

+0

क्रॉलर, AFAIK, AJAX अनुरोधों को ट्रैक भी करें, यह आवश्यक था जब एक पृष्ठ ऐप्स और गतिशील पृष्ठ पेश किए गए [ और पढ़ें] (https://developers.google.com/webmasters/ajax-crawling/docs/learn-more) –

+0

हनीपॉट्स ठीक लगता है http://security.stackexchange.com/a/17107 – bugwheels94

उत्तर

2

मुझे पता चला कि कैसे खुद को इसे संभाल Stackoverflow:

<script> 
    StackExchange.ready(function(){$.get('/posts/40008735/ivc/e079');}); 
</script> 
<noscript> 
    <div> 
     <img src="/posts/40008735/ivc/e079" class="dno" alt="" width="0" height="0"> 
    </div> 
</noscript> 

और robots.txt में:

Disallow: /*/ivc/* 
... 
User-agent: Googlebot-Image 
Disallow: /*/ivc/* 

तो बुनियादी तौर पर, वे इसे संभाल के रूप में मैं विकल्प 2 में सुझाव दिया:

AJAX अनुरोध जारी करें (या जावास्क्रिप्ट अक्षम होने पर एक छिपी हुई आईएमजी के साथ) और Disallow के साथ उस यूआरएल को क्रॉल न करने के लिए क्रॉलर्स और बॉट्स को निर्देश दें।

1

मैं चैट पर उल्लेख किया है, आप क्लाइंट का IP पता कैश सकता है जब यह /robots.txt अनुरोध करता है।

अन्य अनुरोधों पर, जांचें कि आईपी पता कैश में है या नहीं और इसे पृष्ठ दृश्य के रूप में गिनें।

+0

धन्यवाद, हालांकि मैंने एसओ द्वारा उपयोग किए गए समाधान के साथ जाने का फैसला किया। – gdoron

संबंधित मुद्दे