Maison  >  Article  >  développement back-end  >  Pratique du robot d'exploration PHP : comment analyser les données d'une table Web

Pratique du robot d'exploration PHP : comment analyser les données d'une table Web

WBOY
WBOYoriginal
2023-06-13 09:35:231388parcourir

Avec l'avènement d'Internet et de l'ère du Big Data, de plus en plus de données peuvent être collectées et utilisées. Parmi les nombreuses méthodes permettant d’obtenir des données à partir de pages Web, la technologie des robots d’exploration peut être considérée comme la plus puissante et la plus efficace.

Dans des scénarios d'application réels, nous devons souvent récupérer des données spécifiques à partir de pages Web, en particulier les données de tableaux dans les pages Web. Par conséquent, cet article présentera comment utiliser la technologie de robot d'exploration PHP pour obtenir et analyser des données tabulaires dans des pages Web.

  1. Installer et configurer la bibliothèque de robots PHP

Avant de commencer à écrire du code de robot, nous devons installer et configurer une bibliothèque de robots PHP. Ici, nous choisissons d'utiliser la bibliothèque PHP Simple HTML DOM Parser, qui est un analyseur HTML léger qui peut facilement analyser les balises et les attributs dans les documents HTML et fournit certaines méthodes d'opération DOM couramment utilisées. La bibliothèque peut être facilement installée et configurée à l'aide de l'outil Composer.

  1. Analyser la page Web cible

Avant d'écrire le code pour capturer les données de la page Web, nous devons d'abord analyser la structure et le format des données de la page Web cible afin de pouvoir localiser et obtenir correctement les données requises. Ici, nous prenons comme exemple la page de liste d'articles d'un site Web de blog. Elle contient plusieurs lignes de données et quelques éléments de tableau, comme indiqué ci-dessous :

<table>
  <thead>
    <tr>
      <th>编号</th>
      <th>标题</th>
      <th>作者</th>
      <th>发布时间</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td><a href="/articles/1">PHP爬虫实战</a></td>
      <td>张三</td>
      <td>2022-06-01 08:00:00</td>
    </tr>
    <tr>
      <td>2</td>
      <td><a href="/articles/2">Python数据可视化</a></td>
      <td>李四</td>
      <td>2022-06-02 09:00:00</td>
    </tr>
    <!-- more rows -->
  </tbody>
</table>

Le tableau de cette page Web se compose de f5d188ed2c074f8b944552db028f98a1 code>, il se compose de balises telles que <code>ae20bdd317918ca68efdc799512a9b39, 92cee25da80fac49f6fb6eec5fd2c22a et a34de1251f0d9fe1e645927f19a896e8, parmi lesquelles ae20bdd317918ca68efdc799512a9b39 est utilisé pour définir les en-têtes de colonnes du tableau, 92cee25da80fac49f6fb6eec5fd2c22a est utilisé pour définir les données de ligne du tableau, b6c5a531a458a2e790c1fd6421739d1c code> est utilisé pour définir les données de la cellule, et <code> La balise 3499910bf9dac5ae3c52d5ede7383485 représente le lien vers le titre de l'article. f5d188ed2c074f8b944552db028f98a1ae20bdd317918ca68efdc799512a9b3992cee25da80fac49f6fb6eec5fd2c22aa34de1251f0d9fe1e645927f19a896e8等标签组成,其中ae20bdd317918ca68efdc799512a9b39用于定义表格的列头,92cee25da80fac49f6fb6eec5fd2c22a用于定义表格的行数据,b6c5a531a458a2e790c1fd6421739d1c用于定义单元格数据,而3499910bf9dac5ae3c52d5ede7383485标签则表示文章标题的链接。

  1. 编写爬虫代码

有了目标网页的分析结果,我们就可以编写爬虫代码来获取表格数据了。

首先,我们需要加载目标网页,然后使用file_get_html()方法将其转换成DOM对象。接着,我们可以使用find()方法来选择数据所在的元素,例如table > tbody > tr表示选择f5d188ed2c074f8b944552db028f98a1的子元素92cee25da80fac49f6fb6eec5fd2c22a下的所有a34de1251f0d9fe1e645927f19a896e8标签,即表格的所有行数据。代码如下:

$url = 'http://example.com/articles';
$html = file_get_html($url);

$rows = array();
foreach ($html->find('table > tbody > tr') as $row) {
  // 解析表格数据
}

然后,我们需要遍历每一行数据,解析其中的单元格数据并将其保存到数组中,以便后续处理。具体来说,我们可以使用find('td')方法来选择每个行元素的子元素b6c5a531a458a2e790c1fd6421739d1c,然后获取其文本内容或链接地址。代码如下:

$url = 'http://example.com/articles';
$html = file_get_html($url);

$rows = array();
foreach ($html->find('table > tbody > tr') as $row) {
  $data = array();
  
  // 获取单元格文本内容或链接地址
  $columns = $row->find('td');
  $data['id'] = $columns[0]->plaintext;
  $data['title'] = $columns[1]->find('a', 0)->plaintext;
  $data['link'] = $columns[1]->find('a', 0)->href;
  $data['author'] = $columns[2]->plaintext;
  $data['date'] = $columns[3]->plaintext;
    
  $rows[] = $data;
}

上述代码中,$data数组保存当前行的数据,其中idtitleauthordate分别对应表格的列,而link则是文章标题的链接地址。使用$rows[] = $data语句将$data数组添加到$rows

    Écrire le code du robot

      Avec les résultats d'analyse de la page Web cible, nous pouvons écrire du code du robot pour obtenir les données du tableau.
    1. Tout d'abord, nous devons charger la page Web cible, puis utiliser la méthode file_get_html() pour la convertir en objet DOM. Ensuite, nous pouvons utiliser la méthode find() pour sélectionner l'élément où se trouvent les données. Par exemple, table > tbody > ;table> Toutes les balises a34de1251f0d9fe1e645927f19a896e8 sous l'élément enfant 92cee25da80fac49f6fb6eec5fd2c22a, c'est-à-dire toutes les lignes de données du tableau. Le code est le suivant :
    rrreee

    Ensuite, nous devons parcourir chaque ligne de données, analyser les données de la cellule et les enregistrer dans un tableau pour un traitement ultérieur. Plus précisément, nous pouvons utiliser la méthode find('td') pour sélectionner l'élément enfant b6c5a531a458a2e790c1fd6421739d1c de chaque élément de ligne, puis obtenir son contenu textuel ou son adresse de lien. . Le code est le suivant :

    rrreee🎜Dans le code ci-dessus, le tableau $data stocke les données de la ligne courante, parmi lesquelles id, title code>, <code>author et date correspondent respectivement aux colonnes du tableau, et link est l'adresse du lien du titre de l'article. Utilisez l'instruction $rows[] = $data pour ajouter le tableau $data au tableau $rows. 🎜🎜Enfin, nous pouvons traiter et stocker les données en fonction de nos besoins, par exemple en enregistrant les données dans une base de données ou en les exportant vers un fichier Excel. 🎜🎜🎜Résumé🎜🎜🎜Cet article explique comment utiliser la bibliothèque PHP Simple HTML DOM Parser pour explorer les données de tables Web. En analysant la structure et le format des données de la page Web cible et en utilisant les méthodes de fonctionnement DOM correspondantes, nous pouvons rapidement localiser et obtenir les données requises, réalisant ainsi divers scénarios d'analyse de données et d'application. Bien entendu, la technologie des robots d'exploration doit également veiller à se conformer aux réglementations et politiques d'utilisation du site Web, et ne peut pas abuser ou porter atteinte aux droits d'autrui. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn