Extraction Web et extraction de données à Toronto et partout en Ontario : des extracteurs sur mesure pour les annonces, registres, prix et documents publics, des analyseurs qui transforment PDF, exportations et courriels en enregistrements structurés, la synchronisation du CRM sans ressaisie, et la recherche en texte intégral sur les archives de documents — l'ingénierie des motifs en expressions régulières et en Python, planifiée, journalisée et légale.
Récupérer poliment, analyser avec des motifs, valider ce qui arrive. Une page change de mise en page et l'exécution le dit — la base est chargée quand même.
Regexle métier, en Python, depuis le premier pipeline
des exécutions qui journalisent, réessaient et vous avertissent quand une source change
Planifiédes exécutions qui journalisent, réessaient et vous avertissent quand une source change
des données publiques, dans les conditions d'utilisation et la loi
Légaldes données publiques, dans les conditions d'utilisation et la loi
De l’ingénierie des motifs, pas des scripts
La plupart des données utiles du monde ne sont pas dans une API. Elles sont sur une page publique, dans un PDF, dans un chiffrier que quelqu’un exporte chaque vendredi, dans un courriel. La façon efficace de les structurer reste un motif bien écrit — une expression régulière qui sait exactement à quoi ressemblent un identifiant, un montant ou une référence — et la raison pour laquelle la plupart des projets d’extraction meurent est qu’un motif est tout ce qu’ils étaient. Nous bâtissons l’ingénierie autour du motif : une récupération polie et planifiée qui respecte la source; des analyseurs avec un test pour chaque format rencontré; une validation qui refuse le mal formé et journalise le rejet; une détection de dérive qui lève la main quand une page change; et du code dans un dépôt qui vous appartient, en Python, par la même équipe qui bâtit nos pipelines et nos intégrations. Le COQES et Green Standards sont deux des organisations que ce travail sur les motifs a servies.
Des données publiques, dans les limites de la loi
L’extraction ne vaut la peine que si l’on peut s’y fier, et cela inclut le droit. Nous délimitons chaque source contre ses conditions d’utilisation et contre le droit canadien de la vie privée, nous en tenons aux données publiques non personnelles à moins que vous n’ayez un fondement légal pour plus, et concevons le pipeline pour rester à l’intérieur de ces lignes — parce que les règles de vie privée qui s’appliquent à ce que vous collectez s’appliquent à ce que vous extrayez.
Ce que nous extrayons, et comment
La façon la plus efficace de structurer des données non structurées reste un motif bien écrit — et l'ingénierie autour est ce qui le fait durer
L'extraction Web, faite poliment
Des extracteurs sur mesure pour les annonces, registres, catalogues, prix et documents publics : limités en débit, mis en cache, identifiés, planifiés, et écrits pour survivre au changement de mise en page qui casse le script que tout le monde a acheté. Des données publiques, dans les conditions d’utilisation du site et la loi.
Des analyseurs pour les documents et les exportations
PDF, rapports numérisés, exportations de chiffriers, courriels et formats hérités transformés en enregistrements avec un schéma : des expressions régulières là où elles sont le bon outil, des grammaires et des règles de mise en page là où elles ne le sont pas, et un test pour chaque format jamais rencontré.
Synchronisation du CRM et des bases de données
Des contacts, des comptes et des enregistrements déplacés entre le CRM, l’ERP et le chiffrier sans ressaisie : appariés, dédoublonnés, rapprochés et réécrits — en Python, à vous.
Recherche en texte intégral et indexation
Du texte extrait des archives de documents et indexé pour que les gens trouvent. Pour le COQES, une extraction de texte en Python avec cron et WP-CLI a mis la recherche en texte intégral sur chaque publication PDF du site.
Validation et qualité des données
Des motifs qui refusent l’identifiant mal formé, la date impossible et le doublon, avec les rejets journalisés et signalés plutôt que discrètement écartés — la différence entre un jeu de données et un passif.
Des pipelines qui vous disent quand ils cassent
Chaque extraction s’exécute selon un horaire, journalise ce qu’elle a récupéré et rejeté, et lève la main quand une source change de forme. Personne ne découvre en réunion du conseil que les chiffres ont cessé de se mettre à jour en mars.
Comment se déroule un mandat d'extraction
Délimiter les sources
Ce qui est public, ce que les conditions permettent, à quoi servent les données, et où elles atterrissent. Si une source ne peut pas être utilisée légalement, c’est ici que nous le disons.
Prototyper les motifs
De vrais échantillons, de vrais cas limites, et un analyseur que vous voyez fonctionner dès la première semaine — avec la liste des rejets pour que vous puissiez en juger.
Durcir et planifier
Limites de débit, nouvelles tentatives, cache, détection de la dérive, journalisation et tests; une exécution planifiée avec un rapport que vous pouvez lire.
Remettre
Le code dans un dépôt qui vous appartient, la documentation, et un forfait si vous voulez que nous le gardions en marche quand les sources changent.
À qui cela s'adresse
Les organisations de recherche et de politiques
Des équipes qui ont besoin que des registres, des publications, des dépôts et des jeux de données soient recueillis et structurés selon un horaire, avec la provenance conservée.
Les équipes des ventes et des opérations
Des organisations dont les pistes, les prix, les stocks ou les données de partenaires arrivent par sites Web, chiffriers et courriels, et doivent atterrir propres dans le CRM ou l’ERP.
Quiconque a une archive de documents
Des établissements avec des années de PDF que personne ne peut chercher, et l’obligation — ou le souhait — de les rendre trouvables et accessibles.
Dans les mots de nos clients
Imran et son équipe ont développé et maintenu plusieurs solutions hautement personnalisées pour notre entreprise. J'ai travaillé étroitement avec Imran pendant plus de deux ans — vous auriez peine à trouver un développeur plus créatif, avisé et réactif.
Rick Satenstein — Director of Operations, Green Standards Ltd.
Travailler avec Imran sur nombre de projets, grands et petits, a été un plaisir. Il est prompt à répondre et à trouver des solutions sur de multiples plateformes. Je recommande fortement.
Marc Borins — Marketing Communications Manager, Green Standards Ltd.
Recueillir des données publiques non personnelles est généralement légal quand les conditions d’utilisation du site et la loi le permettent; les renseignements personnels relèvent de la LPRPDE et des lois provinciales, et le Commissariat à la protection de la vie privée a été clair : la disponibilité publique ne rend pas la collecte libre. Nous délimitons chaque extraction contre les conditions et la loi, la concevons pour y rester, et vous disons quand une demande ne le peut pas. Nous sommes des ingénieurs, pas des avocats; là où cela compte, nous travaillons avec vos conseillers.
Pourquoi des expressions régulières?
Parce que pour du texte structuré — identifiants, montants, dates, adresses, références — un motif précis est plus rapide, plus transparent et plus testable que tout ce qui est plus lourd. Nous les utilisons là où elles sont le bon outil et passons aux grammaires, aux analyseurs de mise en page ou aux modèles là où elles ne le sont pas; le métier, c’est de savoir lequel.
Que se passe-t-il quand un site change sa mise en page?
L’extracteur s’en aperçoit. Chaque exécution vérifie ce qu’elle s’attend à trouver, journalise ce qu’elle a rejeté et alerte quand la forme d’une source change, pour qu’une page cassée donne un avertissement plutôt qu’un mois de données silencieusement fausses. Corriger le motif prend d’ordinaire une heure; savoir qu’il le faut est la partie que la plupart des outils sautent.
Pouvez-vous synchroniser notre CRM avec nos autres systèmes?
Oui. L’appariement, le dédoublonnage et le rapprochement entre un CRM, un ERP, un chiffrier ou un flux de partenaire relèvent de la même discipline que l’extraction, dans le même langage. C’est le travail derrière nos intégrations Python et nos modules Odoo.
Traitez-vous les documents numérisés?
Oui — la reconnaissance optique de caractères d’abord, puis les motifs, avec un seuil de confiance et une personne dans la boucle pour ce qui tombe en dessous. Les archives de rapports et de formulaires numérisés sont le cas habituel.
Comment est-ce tarifé?
Un prix fixe pour une extraction délimitée après une courte découverte sur de vrais échantillons, et un forfait pour la garder en marche quand les sources changent. Les variables sont le nombre de sources, leur désordre et la fréquence de leur dérive — et c’est pourquoi nous regardons des échantillons avant de chiffrer.