Existe-t-il un moyen d'extraire les données souhaitées à partir d'un code HTML brut qui a été écrit de façon non-nomique sans IDs
et classes
? Je veux dire, supposons qu'il y ait un fichier html enregistré d'une page web (profil) et que je veuille extraire les données comme (disons) "hobbies". Est-il possible de le faire en utilisant PHP?comment extraire des données à partir d'un fichier html brut
Répondre
Utilisez regex! Je gosse, je gosse. Si vous connaissez l'état de la même page et que le format est suffisamment similaire, vous pouvez essayer d'écrire un analyseur manuel. Alternativement, il y a beaucoup de bibliothèques qui analysent html. Je ne suis pas assez familier avec PHP pour en recommander un, mais je suis sûr que certains Google pourraient vous prendre un long chemin. J'ai eu de la chance avec pure javascript HTML parser de John Resig avant. À la fin de la journée, si vous avez besoin d'informations sémantiques d'une page html qui n'est pas construite sémantiquement, vous êtes probablement condamné par programmation et votre meilleur pari peut être un mechanical turk.
BeautifulSoup http://www.crummy.com/software/BeautifulSoup/, peut-être?
n'est-ce pas pour Python? OP cherche PHP. – echo
On dirait que vous recherchez un interpréteur PHP DOM, tel que this one. Il sera probablement un peu difficile d'extraire les données dont vous avez besoin si le HTML est vraiment dépourvu de structure sémantique, mais un parseur DOM est l'endroit où commencer.
Oui, la technique est appelée web scraping. Vous pouvez utiliser le DOM si son html valide. Si la page est générée dynamiquement, le générateur aurait utilisé une certaine structure, et d'après mon expérience, vous pouvez toujours isoler les éléments d'intérêt.
Si DOM ne fonctionne pas pour vous, vous pouvez simplement utiliser des expressions régulières (c'est ce que j'ai toujours fait lors de l'écriture de web-araignées). Les expressions régulières sont plus efficaces et plus rapides que l'écriture de logique de grattage contre une hiérarchie DOM. Vous devez donc ouvrir quelques pages de profil et analyser la structure statique. Ensuite, écrivez simplement une expression régulière pour isoler les champs d'intérêt.
Il y a deux approches à adopter avec PHP. Le premier est de nettoyer votre document en utilisant the tidy extension donc c'est du XHTML valide, et donc du XML bien formé, et peut donc être analysé en utilisant des outils XML.
La seconde est d'utiliser la version PHP de html5lib parser, qui tente d'implémenter la recherche HTML5 dans les routines d'analyse de navigateur en cours. S'il s'affiche dans un navigateur, html5lib peut l'analyser. En utilisant l'une ou l'autre approche, vous vous retrouverez avec un objet DOM que vous pouvez interroger en utilisant des expressions xpath. Étant donné que vos documents théoriques manquent de structure sémantique, vous aurez envie de regarder les parties du document à partir d'un état d'esprit «la 5ème portée dans le 3ème p».
Plus d'informations here (avertissement de liaison automatique).
- 1. Récupérer des données à partir d'un fichier brut (développement Iphone)
- 2. extraire des données utiles à partir de pages html arbitraires?
- 3. Comment extraire des données spécifiques d'un fichier HTML?
- 4. Comment extraire des données d'un fichier XML
- 5. XPATH - extraire des données à partir d'éléments
- 6. Comment puis-je extraire des URL à partir de texte brut avec Perl?
- 7. Extraire le texte brut du texte HTML dans asp.net
- 8. Générer un fichier PDF à partir d'ASP.NET à partir de contenu HTML/CSS brut?
- 9. Comment extraire des URL à partir du texte
- 10. Comment puis-je extraire/analyser des données tabulaires à partir d'un fichier texte en Perl?
- 11. Comment extraire des couches vidéo à partir d'un fichier AVI?
- 12. Comment extraire des données à partir d'une application Web Java?
- 13. Texte brut justifié à partir du code HTML
- 14. Extraire des données avec regex de html
- 15. En utilisant VB.net extraire des données XML à partir
- 16. Comment puis-je extraire des données numériques à partir d'un fichier texte?
- 17. Comment puis-je extraire des données de vertex à partir d'un fichier fbx
- 18. Utiliser regex pour extraire des variables à partir d'une lettre type en texte brut?
- 19. Extraire des données binaires de DB fichier
- 20. Android - Options pour extraire des données d'un site Web? (HTML)
- 21. Python pour extraire des données d'un fichier
- 22. Comment extraire des données de Google Agenda et afficher en texte brut
- 23. Comment extraire des données spécifiques avec preg_match?
- 24. Comment extraire urls d'image à partir du fichier HTML en C#
- 25. comment afficher le contenu avec html brut
- 26. à extraire les données du fichier texte
- 27. Comment extraire des données d'un fichier texte au format vb
- 28. Comment extraire un seul morceau d'octets à partir d'un fichier?
- 29. comment extraire la chaîne exacte à partir d'un fichier texte
- 30. Comment extraire des données de l'URL
Vous pouvez utiliser des expressions régulières dans PHP à cette fin. PHP n'est pas un langage spécifique à la PNL, mais vous pouvez bien sûr extraire des informations des dcouments comme dans d'autres langages à usage général. –
les expressions régulières ne conviennent pas pour le HTML j'ai peur. Ce n'est pas une langue régulière. – echo
Les expressions régulières fonctionnent correctement. vous n'avez pas besoin de faire l'appariement. J'ai parcouru des millions de pages en utilisant simplement des expressions régulières. –