python - Obtenga el nombre de la aplicación del agente de usuario


Tengo cadenas como

VK/28 CFNetwork/711.4.6 Darwin/14.0.0
Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1
Instagram 8.2.0 (iPhone4,1; iPhone OS 8_4; ru_RU; ru; scale=2.00; 640x960)    AppleWebKit/420+
Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1

Quiero saber qué aplicación se usó para cada cadena. es

vk
mozilla
instagram
mozilla

Encuentro la forma de determinar el navegador, pero no sé cómo obtener la aplicación.



------------Respuesta------------

Puede obtener algo así:

>>> log = '''VK/28 CFNetwork/711.4.6 Darwin/14.0.0
... Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1
... Instagram 8.2.0 (iPhone4,1; iPhone OS 8_4; ru_RU; ru; scale=2.00; 640x960)    AppleWebKit/420+
... Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1
... '''
>>> agents = [line.split()[0].split('/')[0] for line in log.splitlines()]
>>> print '\n'.join(agents)
VK
Mozilla
Instagram
Mozilla


------------Respuesta------------

No está muy claro si solo está tratando de analizar encabezados o si está tratando de hacer coincidir la cadena de agente de usuario con las aplicaciones/servicios conocidos que accedenes tu servidor. Dado que Adem responde la primera pregunta, aquí hay una explicación para la segunda.

No hay forma de averiguar el nombre exacto de la aplicación que accede a su servidor a través del encabezado User-agent. Aunque el estándar HTTP/1.1 especifica el formato de cadena de agente de usuario, lo utilizan principalmente los navegadores operados por humanos, mientras que los bots y otro software pueden usar un formato simplificado o incluso falsificarlo (ver wiki).

Entonces, en su caso, es mejor crear una lista de las aplicaciones que le gustaría rastrear y luegoEncuentre sus encabezados de agente de usuario en la web (como este o este), para que pueda analizar sus encabezados HTTP y hacer coincidir las cadenas de agente de usuario con los elementos de su lista.

Etiquetas: user-agent python

Artículos relacionados:

java - Mybatis asigna varias columnas a la misma propiedad

android - Activitymanager filtrando la actividad