2009-05-29 15 views
45

Jaka jest najlepsza metoda do analizowania ciąg User-Agent w Pythonie niezawodnie wykrywaćanalizowaniem HTTP User-Agent ciąg

  1. Przeglądarka
  2. wersja Przeglądarka
  3. OS

czy może dowolna biblioteka pomocnicza, która to robi:

+0

Bardziej do rzeczy, w zależności od wersji systemu operacyjnego i wersji dla wykrywania możliwości nie jest dobrą strategią. Jaki problem próbujesz rozwiązać? –

+1

Mamy prosty formularz zgłoszenia biletu do naszej aplikacji internetowej. Często pytamy użytkowników o to, czym jest broswer/OS itd. Możemy więc wcześniej wykryć to i poprosić użytkownika o potwierdzenie. Cóż, jeśli to nie jest takie proste, po prostu zrzuty klienta użytkownika, ale nadal trzeba zadawać pytania, jak użytkownik może za pomocą innej przeglądarki, aby przesłać bilet. – Shekhar

+0

Możesz po prostu pozwolić, aby Python renderował formularz i używał JavaScript do zmiany wartości pól wejściowych na bieżące systemy operacyjne i do czego chcesz. – NerdyNick

Odpowiedz

66

Odpowiadając na moje własne pytanie;)

W końcu zdecydowałem się pójść za sugestią # 1 to znaczy pisać własne. I jestem zadowolony z wyniku. Prosimy użyć/zmodyfikować/wysłać mi załatać itp

To tutaj ->http://pypi.python.org/pypi/httpagentparser

+0

Nie wydaje się to działać szczególnie dobrze na telefony komórkowe. W szczególności nie wykryto blackberry. (chociaż masz +1 za napisanie tego!) –

+4

@Jason Sundram Jeśli pomagasz, dostarczając ciągi agenta i oczekiwane wyniki, Blackberry, inne mogą być obsługiwane. Sprawdź https://github.com/shon/httpagentparser/issues – Shekhar

+0

Byłem zainteresowany porównaniem, ale jest to słuszne. Cofnięty. –

2

Jednak jeśli chcesz przeanalizować to wszystko po stronie Pythona, możesz użyć XML/INI pliki udostępnione pod numerem http://browsers.garykeith.com/downloads.asp do wyszukiwania w programie klienckim. Jest to ten sam plik, który jest używany w funkcji get_browser() php.

10

UASparser for Python przez Hicro Kee. Automatycznie zaktualizowany plik danych i pamięć podręczną ze zdalnego serwera z kontrolą wersji.

+0

Polecam również parser UA. – Dexter

8

Werkzeug ma wbudowane analizowanie agenta użytkownika.

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

+0

Interesujące. Szybko sprawdziłem kod. Jest to naprawdę prosty, przyjemny kod w istocie serią wyrażeń regularnych dopasowanych do ciągu agenta. Interesujące byłoby to, jak to działa. Jednym z plusów Werkzeug jest wykrywanie języka, a zaletą httpagentparaser jest wykrywanie wersji OS. – Shekhar

+0

Brakujące połączenie, musi zostać zaktualizowane – Siddharth

5

Pozostałe Odpowiedzi na to pytanie są już dość stare. Wydaje mi się, że nowym standardem podczas analizowania agenta użytkownika przeglądarki jest wersja user agent parser Browserscope.

dogodnie dostępne z dokładnie takie same wzorce dopasowania w many other languages. Któregoś dnia możesz również przeanalizować niektóre ciągi UA w JavaScript i nie musisz się martwić o niespójne analizowanie.