Je sais, je sais ... regex n'est pas le meilleur moyen d'extraire du texte HTML. Mais j'ai besoin d'extraire le texte d'article de beaucoup de pages, je peux stocker des regexes dans la base de données pour chaque site Web. Je ne suis pas sûr de savoir comment les analyseurs XML fonctionneraient avec plusieurs sites Web. Vous auriez besoin d'une fonction distincte pour chaque site Web.Comment extraire du contenu HTML en utilisant Regex en PHP
En tout cas, je ne connais pas grand-chose sur les expressions rationnelles, alors faites-moi confiance.
J'ai une page HTML dans un format similaire à ce
<html>
<head>...</head>
<body>
<div class=nav>...</div><p id="someshit" />
<div class=body>....</div>
<div class=footer>...</div>
</body>
je dois extraire le contenu du conteneur de classe du corps.
J'ai essayé ceci.
$pattern = "/<div class=\"body\">\(.*?\)<\/div>/sui"
$text = $htmlPageAsIs;
if (preg_match($pattern, $text, $matches))
echo "MATCHED!";
else
echo "Sorry gambooka, but your text is in another castle.";
Qu'est-ce que je fais mal? Mon texte se retrouve dans un autre château.
* EDIT: ooohh ... never mind, je trouve readability's code
De toute évidence, vous n'avez pas encore lu la réponse la plus mise à jour de SO: http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 . Si vous ne savez pas grand-chose sur les regex * et * sur les parseurs XML, pourquoi commencer avec les regex et non avec l'approche plus utile de l'analyse HTML? – Boldewyn
Est-ce que DIV contient d'autres sous-DIV? – treznik
@Boldewyn, je l'ai fait, j'ai visualisé ce gars me chasse avec une fourche tout en écrivant cette question. Mais je ne comprends pas comment je pourrais scanner plusieurs sites Web avec XML parser. – HyderA