Je suis http://simplehtmldom.sourceforge.net/ pour créer un robot d'exploration Web en utilisant php, mais je ne comprends pas comment rechercher des mots sans spécifier d'élément. La recherche de mots se fait donc sur la base de toutes les données disponibles.
car le problème ici est que maintenant je spécifie les données recherchées en utilisant l'élément
mais lorsqu'il n'y a pas d'élément
le résultat est vide.
ceci est mon code
foreach($html->find() as $element)
par exemple je veux essayer de rechercher des mots qui contiennent 'yang' mais, les résultats sont vides car ces mots ne contiennent pas le
mais si le mot est contenu dans l'élément
im tryng pour changer cette ligne
foreach($html->find('<p>') as $element)
en
<?php include "simple_html_dom.php"; $html = file_get_html('https://adityadees.blogspot.com/'); foreach($html->find('<p>') as $element) if (strpos($element, 'yang') !== false) { echo $element; } else { echo $element; } ?>
3 Réponses :
Que diriez-vous de:
foreach($html->find('<body>') as $element) if (strpos($element, 'yang') !== false) { echo $element; } else { echo $element; }
en utilisant ce code, le résultat n'affiche pas les résultats de la recherche.
En inspectant la source d'une page donnée, vous pouvez voir que le résumé de l'article se trouve à l'intérieur de la balise div avec class = item-snippet.
Bagaimana Cara Mengganti Akun Mobile Legend ? itulah yang selalu dipertanyakan oleh orang yang baru memulai bermain game Mobile Legend. S... Bagaimana Cara Mengaitkan Akun Mobile Legend di Patch Baru ? Mungkin masih ada yang bingung tentang cara mengaitkan akun mobile legend den... Kali ini kita akan membahas tentang bagaimana cara menghitung luas persegi panjangan dengan PHP Hal yang pertama dilakukan adalah membuat ...
Vous pouvez obtenir votre résultat si vous recherchez votre mot dans un tel div:
include('simple_html_dom.php'); $html = file_get_html('https://adityadees.blogspot.com/'); foreach($html->find('div[class=item-snippet]') as $element) { if (strpos($element, 'yang') !== false) { echo $element; } }
résultat:
<div class='item-snippet'> Bagaimana Cara Mengganti Akun Mobile Legend ? itulah yang selalu dipertanyakan oleh orang yang baru memulai bermain game Mobile Legend. S...</div>
Est-ce que c'est que vous cherchez?
oui les résultats que j'attendais étaient comme ça, mais sans préciser certaines parties de l'élément. imaginez comme utiliser ctrl + f pour trouver la partie mot. en d'autres termes, recherchez des mots sur toutes les pages Web.
Voulez-vous trouver tous les paragraphes / textes contenant le mot que vous avez donné?
<?php include('simple_html_dom.php'); $html = file_get_html('https://adityadees.blogspot.com/'); $strings_array = array(); //it searches for any (*) tag with text yang in it foreach($html->find('*[plaintext*=yang]') as $element) { //take only elements which doesn't have childnodes, so are last ones in recursion if ($element->firstChild() == null) { //there still are duplicate strings so add only unique values to an array if (!in_array($element->innertext, $strings_array)) { $strings_array[] = $element->innertext; } } } echo '<pre>'; print_r($strings_array); echo '</pre>'; ?>
Ce n'est pas une solution définitive, mais quelque chose pour commencer. Au moins, il trouve le mot yang 61 fois - comme dans la source html de la page donnée.
mais pourquoi cela ne fonctionne pas pour une autre page? J'essaye de changer l'URL en adityadees.blogspot.com/2019/01/melihat -rangking-website.htm l
Quel est le résultat? Ça marche pour moi. Il trouve 9 chaînes contenant 12 mots yang. Dans la source il y en a 13, car on est en meta tag
ok cela fonctionne, je suis désolé, je ne vois pas si vous éliminez la redondance des données, donc j'ai mal calculé. Merci beaucoup.
Donc, l'entrée est la page Web et un mot, la sortie doit être UNIQUEMENT DIRE si ce mot existe dans une page Web?
les résultats attendus sont les mêmes que @ user11222393 sauf que sans spécifier certains éléments, en d'autres termes, l'entrée est la page Web entière. car peut-être que le mot est dans le pied de page ou dans une autre partie.
Si vous avez ce mot, pourquoi voudriez-vous afficher le paragraphe entier? Le titre de votre question me donne l'intention de simplement vérifier si ce mot existe ou non dans une page Web.