2009-05-29 19 views
45

क्या अजगर में एक उपयोगकर्ता-एजेंट स्ट्रिंग मज़बूती सेपार्सिंग HTTP उपयोगकर्ता-एजेंट स्ट्रिंग

  1. ब्राउज़र
  2. ब्राउज़र संस्करण
  3. ओएस

या शायद पता लगाने के लिए पार्स करने के लिए सबसे अच्छा तरीका है कोई सहायक लाइब्रेरी जो

+0

बिंदु पर और अधिक, ब्राउज़र ओएस के आधार पर और क्षमता पहचान के लिए संस्करण एक अच्छी रणनीति नहीं है। आप कौनसी समस्याएं हल करने की कोशिश कर रहे हैं? –

+1

हमारे पास हमारे वेब ऐप के लिए एक साधारण टिकट रिपोर्टर फॉर्म है। और हम अक्सर उपयोगकर्ताओं से पूछते हैं कि ब्रोशर/ओएस आदि क्या है। इसलिए हम इसे पहले ही पहचान सकते हैं और उपयोगकर्ता से पुष्टि करने के लिए कह सकते हैं। अच्छा, अगर यह इतना छोटा नहीं है तो हम उपयोगकर्ता-एजेंट को डंप करेंगे लेकिन फिर भी प्रश्न पूछने की आवश्यकता है, क्योंकि उपयोगकर्ता टिकट जमा करने के लिए एक अलग ब्राउज़र का उपयोग कर सकता है। – Shekhar

+0

आप केवल पाइथन को फॉर्म प्रस्तुत करना चाहते हैं और वर्तमान ओएस के इनपुट फ़ील्ड मानों को बदलने के लिए जावास्क्रिप्ट का उपयोग करना चाहते हैं और जो भी आप चाहते हैं। – NerdyNick

उत्तर

66

मेरे अपने प्रश्न का उत्तर देना;)

अंत में मैं # 1 अर्थात सुझाव से जाने के लिए अपने स्वयं के बारे में फैसला किया। और मैं परिणाम से खुश हूं। कृपया का उपयोग करें/संशोधित/मुझे पैच आदि

भेजने के लिए स्वतंत्र लग रहा है यह यहाँ है ->http://pypi.python.org/pypi/httpagentparser

+0

यह मोबाइल फोन के लिए विशेष रूप से अच्छी तरह से काम नहीं करता प्रतीत होता है। विशेष रूप से, ब्लैकबेरी का पता नहीं चला है। (हालांकि आपको इसे लिखने के लिए मेरा +1 मिला है!) –

+4

@ जेसन सुंद्राम यदि आप एजेंट स्ट्रिंग और अपेक्षित परिणाम प्रदान करके सहायता करते हैं, तो ब्लैकबेरी, दूसरों को समर्थित किया जा सकता है। Https://github.com/shon/httpagentparser/issues – Shekhar

+0

देखें मुझे तुलना में रूचि थी, लेकिन यह एक उचित बिंदु है। मुकर गए। –

2

हालांकि यदि आप पाइथन पक्ष पर यह सब पार्स करना चाहते हैं तो आप एक्सएमएल/आईएनआई का उपयोग कर सकते हैं उपयोगकर्ता एजेंट पर लुकअप करने के लिए http://browsers.garykeith.com/downloads.asp पर प्रदान की गई फ़ाइलें। यह वही फ़ाइल है जिसका उपयोग php's get_browser() फ़ंक्शन में किया जाता है।

3

था Browser Cap Parser काम करना चाहिए। यह थोड़ा धीमा है, हालांकि हो सकता है ..

10

UASparser for Python Hicro Kee द्वारा। स्वचालित रूप से डेटा जांच के साथ रिमोट सर्वर से डेटाफाइल और कैश अपडेट किया गया।

+0

मैं भी UA पार्सर की सिफारिश करता हूं। – Dexter

6

the full corpus of Firefox User Agents के खिलाफ इन सुझावों को चलाने के बाद, मैंने पाया है कि तुलना के लिए संस्करण-संख्या पार्सिंग काफी खराब है।

यदि आपको यही चाहिए, तो मेरा सुझाव है कि आप UAparser पर एक नज़र डालें, जो browserscope प्रोजेक्ट का हिस्सा था। Documentation here.

+6

मुझे लगता है कि इस रेपो में एक और वर्तमान संस्करण है: https://github.com/tobie/ua-parser – mbarkhau

8

वर्कज़ुग में उपयोगकर्ता-एजेंट पार्सिंग अंतर्निहित है।

http://werkzeug.pocoo.org/docs/0.10/utils/#module-werkzeug.useragents

+0

दिलचस्प। मैंने तुरंत कोड की जांच की। एजेंट स्ट्रिंग के खिलाफ मिलान करने के लिए यह वास्तव में सरल, अच्छा कोड रेगेक्स की एक श्रृंखला है। दिलचस्प यह होगा कि यह कैसे करता है। वर्कज़ुग का एक प्लस प्वाइंट यह भाषा का भी पता लगाता है, जबकि httpagentparaser का लाभ यह है कि यह ओएस संस्करण का भी पता लगाता है। – Shekhar

+0

लिंक गायब है, अद्यतन होना चाहिए – Siddharth

5

इस सवाल का अन्य प्रतिक्रियाओं अब बल्कि पुराने हैं। मेरा मानना ​​है कि ब्राउजर उपयोगकर्ता एजेंट पार्सिंग में नया मानक ब्राउजरकोप का user agent parser है।

इसके अलावा ठीक उसी मिलान पैटर्न many other languages में साथ आसानी से उपलब्ध है। किसी दिन आप जावास्क्रिप्ट में कुछ UA स्ट्रिंग्स को भी पार्स करना चाहते हैं और आपको असंगत पार्सिंग के बारे में चिंता करने की आवश्यकता नहीं है।

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