Existe-t-il une bibliothèque spécialisée dans l'analyse de telles données?Comment puis-je extraire les adresses et les numéros de téléphone du HTML?
Répondre
Vous pourriez utiliser quelque chose comme Google Maps. Géocoder l'adresse et, en cas de succès, l'API de Google renverra une représentation XML de l'adresse avec tous les éléments séparés (et corrigés ou complétés).
EDIT:
Je suis soumis au vote vers le bas et ne sais pas pourquoi. L'analyse des adresses peut être un peu difficile. Voici un exemple d'utilisation de Google pour ce faire:
Je ne dis pas cela est la seule façon ou nécessairement la meilleure façon. Juste un façon d'analyser les adresses sur un site Web.
Il y a 2 parties à ceci: extraire l'adresse complète de la page, et analyser cette adresse en quelque chose que vous pouvez utiliser (stocker les différentes parties dans une base de données par exemple).
Pour la première partie, vous aurez besoin d'une heuristique, probablement dépendante du pays: pour les adresses américaines, [A-Z][A-Z],?\s*\d\d\d\d\d
devrait vous donner la fin d'une adresse, à condition que les 2 lettres s'avèrent être un état. Trouver le début de la chaîne est laissé comme un exercice.
La deuxième partie peut être faite soit par un appel à Google Maps, ou comme d'habitude en Perl, en utilisant un module CPAN: Lingua::EN::AddressParse (testez-le sur vos données pour voir si cela fonctionne assez bien pour vous).
Dans tous les cas, il s'agit d'une tâche difficile, et vous ne l'obtiendrez probablement jamais à 100%, prévoyez donc de vérifier manuellement les adresses avant de les utiliser.
Vous n'avez pas besoin d'expressions régulières (pour l'instant) ou d'un analyseur général comme pyparsing (du tout). Regardez quelque chose comme Beautiful Soup, qui va analyser même le mauvais HTML en quelque chose comme un arbre de tags. À partir de là, vous pouvez regarder la source de la page et découvrir les balises à explorer pour accéder aux données. Ensuite, à partir de l'arborescence de Beautiful Soup, vous pouvez rechercher ces nœuds en utilisant XPath (dans les versions récentes), et passer directement en boucle sur les balises qui vous intéressent, pour accéder facilement aux données réelles. De là, vous pouvez analyser les données en utilisant une regex rapide ou quelque chose. Ce sera plus flexible et plus à l'épreuve du futur, et peut-être aussi moins explosif, que de simplement essayer de le faire dans des expressions régulières pures.
- 1. Comment analyser et montrer les hyperliens (numéro de téléphone/adresses e-mail, etc.) dans UILabel?
- 2. Extraction des adresses de rue/numéros de téléphone internationaux à partir du texte libre
- 3. meilleure bibliothèque Python pour télécharger et extraire les adresses
- 4. Quel est le format international pour les numéros de téléphone
- 5. NSNumberFormatter pour formater les numéros de téléphone américains
- 6. Comment extraire les liens du HTML en utilisant regex?
- 7. Comment prendre un numéro de téléphone avec un plus et un crochet et juste retourner les numéros?
- 8. comment comparer les adresses IP
- 9. Comment réécrire des numéros de téléphone dans T-SQL?
- 10. Quels sont les numéros de déchirure/rsp segfault et comment les utiliser
- 11. Existe-t-il un validateur de numéros de téléphone pour tous les pays pour Perl?
- 12. Exécution de plusieurs émulateurs Android avec différents numéros de téléphone
- 13. Besoin de reformater les entrées de numéros de téléphone dans un script PHP Formmail
- 14. Disposition du clavier iPhone pour les numéros négatifs?
- 15. Données de téléphone et d'adresse internationales?
- 16. Expression régulière pour correspondre à des numéros de téléphone avec les codes de pays
- 17. Numéros de téléphone à des liens en Python
- 18. Formatage du numéro de téléphone
- 19. Obtenir les numéros de chaîne
- 20. Aligner les en-têtes HTML avec les numéros de section suspendus?
- 21. Expression régulière correspondant aux numéros de téléphone américains
- 22. Comment Aweber et FeedBlitz rapportent les numéros d'abonné à Feedburner?
- 23. Extraire les paramètres du modèle C++
- 24. Extraire toutes les images du fichier pdf
- 25. Trier les numéros avec easy68k
- 26. Vérification du numéro de téléphone américain
- 27. Comment extraire les icônes UIBarButtonItem du SDK iPhone?
- 28. Découvrez les adresses IP des clients connectés?
- 29. Comment comparer les tableaux et extraire la différence?
- 30. Supprimer les numéros de ligne de SyntaxHighlighter
Up-voté vous. Traiter les services «dans le nuage» comme l'API Google Maps comme une bibliothèque (ce que l'affiche a demandé) est valide, à mon humble avis. –
:) merci pour le vote – marcc
peut-être les downvotes sont pour ne pas adresser obtenir les adresses de la page html en premier lieu? juste une supposition. – ysth