كيفية تصنيف المستخدمين في بلدان مختلفة، بناء على حقل الموقع

StackOverflow https://stackoverflow.com/questions/1280266

سؤال

تحتوي معظم تطبيقات الويب على حقل موقع، حيث يمكن أن يدخل الاستخدامات في موقع اختيارهم.

كيف تصنف المستخدمين في بلدان مختلفة، بناء على الموقع الذي تم إدخاله.

على سبيل المثال، استخدمت مكدسة تفريغ تجاوز users.xml واستخراج أسماء المستخدمين والسمعة والموقع:

['Jeff Atwood', '12853', 'El Cerrito, CA']
['Jarrod Dixon', '1114', 'Morganton, NC']
['Sneakers OToole', '200', 'Unknown']
['Greg Hurlman', '5327', 'Halfway between the boardwalk and Six Flags, NJ']
['Power-coder', '812', 'Burlington, Ontario, Canada']
['Chris Jester-Young', '16509', 'Durham, NC']
['Teifion', '7024', 'Wales']
['Grant', '3333', 'Georgia']
['TimM', '133', 'Alabama']
['Leon Bambrick', '2450', 'Australia']
['Coincoin', '3801', 'Montreal']
['Tom Grochowicz', '125', 'NJ']
['Rex M', '12822', 'US']
['Dillie-O', '7109', 'Prescott, AZ']
['Pete', '653', 'Reynoldsburg, OH']
['Nick Berardi', '9762', 'Phoenixville, PA']
['Kandis', '39', '']
['Shawn', '4248', 'philadelphia']
['Yaakov Ellis', '3651', 'Israel']
['redwards', '21', 'US']
['Dave Ward', '4831', 'Atlanta']
['Liron Yahdav', '527', 'San Rafael, CA']
['Geoff Dalgas', '648', 'Corvallis, OR']
['Kevin Dente', '1619', 'Oakland, CA']
['Tom', '3316', '']
['denny', '573', 'Winchester, VA']
['Karl Seguin', '4195', 'Ottawa']
['Bob', '4652', 'US']
['saniul', '2352', 'London, UK']
['saint_groceon', '1087', 'Houston, TX']
['Tim Boland', '192', 'Cincinnati Ohio']
['Darren Kopp', '5807', 'Woods Cross, UT']

باستخدام البرنامج النصي Python التالي:

from xml.etree import ElementTree

root = ElementTree.parse('SO Export/so-export-2009-05/users.xml').getroot()
items = ['DisplayName','Reputation','Location']

def loop1():
    for count,i in enumerate(root):
    det = [i.get(x) for x in items]
    print det
    if count>30: break

loop1()

ما هي أبسط طريقة لتصنيف الناس إلى بلدان مختلفة؟ هل هناك أي طاولات بحث جاهزة توفر لي قائلا X الموقع ينتمي إلى Y بلد؟

لا تحتاج جدول البحث دقيقا تماما. يتم الحصول على إجابات دقيقة بشكل معقول عن طريق الاستعلام عن سلسلة الموقع على Google، أو الأفضل، Wolfram Alpha.

هل كانت مفيدة؟

المحلول

أفضل رهان هو استخدام API Geocoding مثل جوبي (بعض الأمثلة).

ال جوجل Geocoding API., ، على سبيل المثال، سيعود البلاد في CountryNameCode-لمست الرد.

من خلال حقل موقع واحد فقط، من المحتمل أن يكون عدد التطابقات الخاطئة مرتفعا نسبيا، ولكن ربما يكون جيدا بما فيه الكفاية.

إذا كان لديك سجلات الخادم، فيمكنك محاولة البحث أيضا عن عنوان IP للمستخدمين باستخدام Geocoder IP (مزيد من المعلومات والمؤشرات على ويكيبيديا

نصائح أخرى

إجبار المستخدمين على تحديد الدولة، لأن عليك التعامل مع الغموض. هذا سيكون بالطريقة الصحيحة.

إذا لم يكن ذلك ممكنا، فسيكون على الأقل أفضل تخمينك بالتزامن مع عنوان IP الخاص به.

على سبيل المثال، ["المنحة"، "3333"، "جورجيا"

هل هذه جورجيا، الولايات المتحدة الأمريكية؟ أم هي هذه جمهورية جورجيا؟

إذا كان عنوان IP الخاص بهم يشير إلى مكان ما في آسيا الوسطى أو أوروبا الشرقية، فإن الفرص هي جمهورية جورجيا. إذا كانت أمريكا الشمالية، فحسن جيدة أنها تعني جورجيا بالولايات المتحدة الأمريكية.

لاحظ أن تعيينات عنوان IP إلى البلد ليس دقيقا بنسبة 100٪، ويجب تحديث قاعدة البيانات بانتظام. في رأيي، الكثير من المتاعب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top