Ako filtrovať požiadavky aplikácie spoločnosti Flask na základe agentov používateľov?

Jul 22, 2025Zanechajte správu

Hej! Ak prevádzkujete aplikáciu Flask, možno ste narazili na potrebu filtrovať požiadavky na základe agentov používateľov. Užívateľskí agenti sú reťazce, ktoré identifikujú prehliadač, zariadenie alebo aplikáciu, ktorá žiadosť na váš server. Filtrovanie založené na používateľských agentoch môže byť veľmi užitočné z rôznych dôvodov, ako je blokovanie škodlivých robotov, servírovanie iného obsahu pre konkrétne prehliadače alebo jednoduché riadenie prenosu.

Ako dodávateľ filtračnej banky som videl z prvej ruky, aké dôležité je mať efektívne filtrovanie užívateľa - agentov v aplikáciách Flask. Poďme sa ponoriť do toho, ako to môžete dosiahnuť.

Prečo filter založený na používateľských agentoch?

Po prvé, povedzme si o tom, prečo by ste chceli filtrovať požiadavky na základe agentov používateľov. Škodlivé roboty sú veľkou bolesťou hlavy pre webové aplikácie. Môžu preťažiť váš server, zoškrabať vaše údaje alebo vykonávať ďalšie nežiaduce akcie. Odfiltrovaním známych agentov používateľov BOT môžete svoju aplikáciu chrániť pred týmito hrozbami.

Ďalším dôvodom je slúžiť inému obsahu na základe prehliadača alebo zariadenia. Napríklad niektoré staršie prehliadače nemusia podporovať moderné webové technológie. Tieto prehliadače môžete zistiť prostredníctvom svojich používateľov agentov a slúžiť im zjednodušenú verziu vašej aplikácie.

Ako získať používateľa agenta do banky

Predtým, ako budete môcť filtrovať požiadavky, musíte získať agenta používateľa z prichádzajúcej žiadosti. Vo banke je to celkom jednoduché. Môžete použiťžiadosťObjekt, ktorý je k dispozícii v každej funkcii trasy. Tu je jednoduchý príklad:

Z Flask import banka, request app = banka (__ name__) @app.Route ('/') def index (): user_agent = request.headers.get ('user-Agent') return f'your používateľa používateľa je: {user_agent} 'if __name__ ==' __main__ '': app.Run (debug = true)

V tomto kóde dostávameUžívateľ - agenthlavička z hlavičiek žiadosti. Tenpožiadavky.headersje slovník - podobne ako objekt, ktorý obsahuje všetky hlavičky odoslané so žiadosťou.

Základný užívateľ - filtrovanie agentov

Teraz, keď môžeme získať agenta používateľa, začnite filtrovať. Jedným z jednoduchých spôsobov je skontrolovať, či agent používateľa obsahuje určité kľúčové slová. Napríklad, ak chcete zablokovať všetky požiadavky od konkrétneho robota, môžete urobiť niečo také:

Z banky Import Bank, požiadavka, potrat app = banka (__ name__) bloked_user_agents = ['badbot/1.0'] @app.Route ('/') def index (): user_agent = request.headers.get.get ('užívateľ-agent'), ak užívateľ_agent a acrte (bad_agent in user_agent pre bad_agent v blokovanom_useri) Moja fľašková aplikácia! “ Ak __name__ == '__main__': App.Run (debug = true)

V tomto kóde máme zoznam blokovaných používateľov. Skontrolujeme, či prichádzajúci agent používateľa obsahuje niektorý z blokovaných agentov. Ak áno, používamepotratiťFunkcia na návrat 403 zakázaného stavebného kódu.

Používanie regulárnych výrazov pre pokročilejšie filtrovanie

Niekedy potrebujete vo filtrovaní väčšiu flexibilitu. Tam sa hodia regulárne výrazy. Regulárne výrazy vám umožňujú porovnávať vzory v reťazci. Napríklad, ak chcete zablokovať všetky roboty, ktoré začínajú „Bot“, môžete použiť regulárny výraz.

import re from flask import Flask, request, abort app = Flask(__name__) BOT_REGEX = re.compile(r'^Bot.*') @app.route('/') def index(): user_agent = request.headers.get('User-Agent') if user_agent and BOT_REGEX.match(user_agent): abort(403) return 'Welcome to my Flask app!' Ak __name__ == '__main__': App.Run (debug = true)

Tu používamerekreaModul v Pythone na vytvorenie vzoru regulárneho výrazu. Ten^Symbol znamená, že vzor by sa mal začať s „robot“ a.*znamená, že ich môžu nasledovať akékoľvek znaky.

Filtrovanie založené na prehliadači alebo zariadení

Možno budete chcieť tiež slúžiť na základe prehliadača alebo zariadenia odlišný obsah. Napríklad, ak ide o mobilné zariadenie, môžete slúžiť mobilnej - priateľskej verzii vašej aplikácie. Môžete používať knižnice akoIT - odporúčanieanalyzovať agenta používateľa a získať podrobnejšie informácie.

Najprv nainštalujteIT - odporúčanieknižnicaPIP inštalujte UA - syntaktický analyzátor. Potom ho môžete použiť:

Z banky Import banka, žiadosť od UA_Parser Import user_agent_parser App = banka (__ name__) @app.Route ('/') def index (): user_agent = request.headers.get ('user-Agent'), ak užívateľ_agent: sansed_ua = user_agent_parser.parse (užívateľ_agent )_type = Parsed_ua ['Device'] ['Family'] Ak je zariadenia_type v ['iPhone', 'iPad']: Return 'Vitajte vo vašom zariadení Apple!' Else: Vráťte sa „Vitajte na iných zariadeniach!“ Vráťte 'Vitajte!' Ak __name__ == '__main__': App.Run (debug = true)

V tomto kóde používameIT - odporúčanieKnižnica na analýzu agenta používateľa. Potom skontrolujeme rodinu zariadení. Ak ide o iPhone alebo iPad, podávame konkrétnu správu; V opačnom prípade podávame inú správu.

Clear glass Filtering FlaskLaboratory Filtering Flask

Niektoré užitočné filtrovacie banky pre vaše laboratórium

Ak ste v laboratórnom prostredí, ponúkame tiež niekoľko skvelých filtrovacích firiem. Pozrite sa na našeLaboratórne sklenené filtrovacie banky s hornou tubulatúrouaLaboratórne sklenené kužeľové tvary Erlenmeyer filtrujúce bono s hornou tubulou. Tieto banky sú navrhnuté tak, aby vyhovovali potrebám filtrovania vo vedeckom prostredí.

Kontaktujte nás pre vaše potreby filtrovania

Či už hľadáte užívateľa aplikácie Bank Application - riešenia filtrovania agentov alebo vysoko kvalitné laboratórne filtrovanie, sme tu, aby sme pomohli. Ak máte záujem o kúpu našich výrobkov alebo diskusiu o svojich konkrétnych požiadavkách, neváhajte osloviť. Máme tím expertov, ktorí vám pomôžu pri hľadaní najlepších riešení pre vaše potreby.

Odkazy

  • Dokumentácia o banke.
  • Pythónrekreadokumentácia modulu.
  • IT - odporúčanieDokumentácia knižnice.