2009-01-10 7 views
8

मैंने सीखा क्यों अनुरोध। Browser.Crawler हमेशा सी # (http://www.digcode.com/default.aspx?page=ed51cde3-d979-4daf-afae-fa6192562ea9&article=bc3a7a4f-f53e-4f88-8e9c-c9337f6c05a0) में गलत है।Asp.net Request.Browser.Crawler - गतिशील क्रॉलर सूची?

क्या कोई क्रॉलर की सूची को गतिशील रूप से अद्यतन करने के लिए कुछ विधि का उपयोग करता है, इसलिए Request.Browser.Crawler वास्तव में उपयोगी होगा?

उत्तर

11

मैं खुश किया गया है Ocean's Browsercaps द्वारा आपूर्ति परिणाम:

यहाँ विधि वह अपने Logger कक्षा में उपयोग करता है। यह उन क्रॉलर का समर्थन करता है जो माइक्रोसॉफ्ट की कॉन्फ़िगरेशन फाइलों को पहचानने पर परेशान नहीं है। यह भी पता लगाएगा कि क्रॉलर का कौन सा संस्करण आपकी साइट पर है, न कि मुझे वास्तव में उस स्तर की विस्तार की आवश्यकता है।

+0

अच्छा! मैं इसकी जांच करूंगा। –

+0

महासागर की ओर इशारा करते हुए धन्यवाद - मैं कुछ समय के लिए हमारी 1.1 साइटों पर ब्राउज़रकैप्स के बहुत पुराने सेट के साथ फंस गया हूं। –

6

आप Request.UserAgent के खिलाफ (regex) देख सकते हैं।

पीटर ब्रॉमबर्ग ने एएसपी.नेट में ASP.NET Request Logger and Crawler Killer लिखने के बारे में एक अच्छा लेख लिखा।

public static bool IsCrawler(HttpRequest request) 
{ 
    // set next line to "bool isCrawler = false; to use this to deny certain bots 
    bool isCrawler = request.Browser.Crawler; 
    // Microsoft doesn't properly detect several crawlers 
    if (!isCrawler) 
    { 
     // put any additional known crawlers in the Regex below 
     // you can also use this list to deny certain bots instead, if desired: 
     // just set bool isCrawler = false; for first line in method 
     // and only have the ones you want to deny in the following Regex list 
     Regex regEx = new Regex("Slurp|slurp|ask|Ask|Teoma|teoma"); 
     isCrawler = regEx.Match(request.UserAgent).Success; 
    } 
    return isCrawler; 
} 
+6

चेतावनी - यह * मूर्ख * सबूत नहीं है! यदि आप Ask.com टूलबार के कुछ संस्करण स्थापित करते हैं (कम से कम IE में) यह उपयोगकर्ता-एजेंट को कुछ रूपों में 'पूछें' शामिल करने के लिए संशोधित करेगा, जिससे झूठी-सकारात्मक हो सकती है। –