Hej! Jeśli uruchamiasz aplikację do kolby, możesz napotkać potrzebę filtrowania żądań na podstawie agentów użytkowników. Agenci użytkowników to ciągi, które identyfikują przeglądarkę, urządzenie lub aplikację składającą żądanie do serwera. Filtrowanie oparte na agentach użytkowników może być bardzo przydatne z różnych powodów, takich jak blokowanie złośliwych botów, obsługę różnych treści dla określonych przeglądarków lub po prostu zarządzanie ruchem.
Jako dostawca kolb filtrujących widziałem z pierwszej ręki, jak ważne jest posiadanie skutecznego filtrowania użytkownika - agenta w aplikacjach kolb. Zajmijmy się tym, jak możesz to osiągnąć.
Po co filtrować na podstawie agentów użytkowników?
Po pierwsze, porozmawiajmy o tym, dlaczego chcesz filtrować żądania na podstawie agentów użytkowników. Złośliwe boty to duży ból głowy dla aplikacji internetowych. Mogą przeciążyć Twój serwer, zeskrobać dane lub wykonywać inne niechciane działania. Odfiltrowując znanych agentów użytkowników BOT, możesz chronić swoją aplikację przed tymi zagrożeniami.
Innym powodem jest obsługa różnych treści w oparciu o przeglądarkę lub urządzenie. Na przykład niektóre starsze przeglądarki mogą nie obsługiwać nowoczesnych technologii internetowych. Możesz wykryć te przeglądarki za pośrednictwem ich agentów użytkowników i podać im uproszczoną wersję aplikacji.
Jak wprowadzić agenta użytkownika w kolbie
Zanim będziesz mógł przefiltrować żądania, musisz uzyskać agenta użytkownika z żądania przychodzące. W kolbie jest to dość proste. Możesz użyćwniosekobiekt, który jest dostępny w każdej funkcji trasy. Oto prosty przykład:
From Flask Import Flask, Request App = Flask (__ name__) @app.route ('/') def index (): user_agent = request.headers.get.get ('user-agent') zwraca agent użytkownika f'your to: {user_agent} 'if __Name__ ==' __Main__ ': app.run (debeug = true)
W tym kodzie otrzymujemyUżytkownik - agentNagłówek z nagłówków żądań. .request.headersjest słownikiem - jak obiekt, który zawiera wszystkie nagłówki wysłane z żądaniem.
Podstawowy użytkownik - filtrowanie agentów
Teraz, gdy możemy zdobyć agenta użytkownika, zacznijmy filtrować. Jednym prostym sposobem jest sprawdzenie, czy agent użytkownika zawiera pewne słowa kluczowe. Na przykład, jeśli chcesz zablokować wszystkie żądania z określonego bota, możesz zrobić coś takiego:
Z kolby Fleast Import Flask, Requort, Abort App = Flask (__ name__) zablokowany_user_agents = ['BADBOT/1.0'] @app.route ('/') def index (): user_agent = request.headers.get ('user-agent') Jeśli user_agent i dowolny (BAD_AGENT inSer_agent dla BAD_AGENT in Blocked_User_agent): Abort (403). Moja aplikacja Flask! ' jeśli __name__ == '__main__': app.run (debug = true)
W tym kodzie mamy listę zablokowanych agentów użytkowników. Sprawdzamy, czy przychodzący agent użytkownika zawiera którykolwiek z zablokowanych agentów. Jeśli tak, używamyporonićfunkcja zwrócenia kodu stanu 403.
Korzystanie z wyrażeń regularnych do bardziej zaawansowanego filtrowania
Czasami potrzebujesz większej elastyczności w filtrowaniu. Tam przydają się wyrażenia regularne. Wyrażenia regularne umożliwiają dopasowanie wzorów w strunach. Na przykład, jeśli chcesz zablokować wszystkie boty, które zaczynają się od „Bot”, możesz użyć wyrażenia regularnego.
Zaimportuj RE From Folask Import Flask, Requort, Abort App = Flask (__ name__) bot_regex = rec.c.pile (r '^bot.*') @app.route ('/') def index (): user_agent = request.headers.get.get ('user-agent') Jeśli user_agent i bot_regex.match (User_Agent): abort (403) return 'witam do mojego flea. jeśli __name__ == '__main__': app.run (debug = true)
Tutaj używamyOdnośnieModuł w Pythonie, aby stworzyć wzór wyrażenia regularnego. .^symbol oznacza, że wzór powinien zacząć od „bota” i.*Oznacza, że po tym mogą po nim dowolne postacie.
Filtrowanie na podstawie przeglądarki lub urządzenia
Możesz także obsługiwać różne treści w oparciu o przeglądarkę lub urządzenie. Na przykład, jeśli jest to urządzenie mobilne, możesz obsługiwać mobilną wersję swojej aplikacji. Możesz używać bibliotek takich jakIt - polecenieAby przeanalizować agenta użytkownika i uzyskać bardziej szczegółowe informacje.
Najpierw zainstalujIt - poleceniebiblioteka za pomocąinstaluj UA - parser. Oto, jak możesz go użyć:
Z kolby Importu Fleby żądanie z UA_PARSER Importuj użytkownik_agent_parser app = flask (__ name__) @app.route ('/') def index (): user_agent = request.headers.get ('user-agent') if user_agent: parsed_ua = user_agent_parser.parse (user_agent) device_type = parsed_ua ['device'] ['family'] jeśli urządzenie_type w [„iPhone”, „iPad”]: zwróć „Witamy na urządzeniu Apple!” W przeciwnym razie: powróć na innych urządzeniach! ” zwróć „Witaj!” jeśli __name__ == '__main__': app.run (debug = true)
W tym kodzie używamyIt - poleceniebiblioteka, aby analizować agenta użytkownika. Następnie sprawdzamy rodzinę urządzeń. Jeśli jest to iPhone lub iPad, serwujemy określoną wiadomość; W przeciwnym razie podajemy inną wiadomość.


Niektóre przydatne filtrujące kolby dla Twojego laboratorium
Jeśli jesteś w warunkach laboratoryjnych, oferujemy również świetne filtrowanie. Sprawdź naszeLaboratoryjne Filtrowanie przezroczystego szklanego kolby z górną ruraturąILaboratoryjny szklany kształt stożkowy erlenmeyer filtrujący kolby z górnym rubulacją. Te kolby są zaprojektowane tak, aby zaspokoić twoje potrzeby filtrowania w środowisku naukowym.
Skontaktuj się z nami w celu uzyskania potrzeb filtrowania
Niezależnie od tego, czy szukasz użytkowników aplikacji Flask - Agent Filting Solutions, czy wysokiej jakości filtrowanie laboratoryjne, jesteśmy tutaj, aby pomóc. Jeśli chcesz kupić nasze produkty lub omówić swoje konkretne wymagania, nie wahaj się skontaktować. Mamy zespół ekspertów gotowych pomóc w znalezieniu najlepszych rozwiązań dla Twoich potrzeb.
Odniesienia
- Dokumentacja kolby.
- Pyton
OdnośnieDokumentacja modułu. It - polecenieDokumentacja biblioteki.
