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.
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.
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 <table></ code>, il se compose de balises telles que <code><thead>
, <tbody>
et <tr>
, parmi lesquelles <thead>
est utilisé pour définir les en-têtes de colonnes du tableau, <tbody>
est utilisé pour définir les données de ligne du tableau, <td></ code> est utilisé pour définir les données de la cellule, et <code> La balise <a>
représente le lien vers le titre de l'article. <table>
、<thead>
、<tbody>
和<tr>
等标签组成,其中<thead>
用于定义表格的列头,<tbody>
用于定义表格的行数据,<td>
用于定义单元格数据,而<a>
标签则表示文章标题的链接。
有了目标网页的分析结果,我们就可以编写爬虫代码来获取表格数据了。
首先,我们需要加载目标网页,然后使用file_get_html()
方法将其转换成DOM对象。接着,我们可以使用find()
方法来选择数据所在的元素,例如table > tbody > tr
表示选择<table>
的子元素<tbody>
下的所有<tr>
标签,即表格的所有行数据。代码如下:
$url = 'http://example.com/articles'; $html = file_get_html($url); $rows = array(); foreach ($html->find('table > tbody > tr') as $row) { // 解析表格数据 }
然后,我们需要遍历每一行数据,解析其中的单元格数据并将其保存到数组中,以便后续处理。具体来说,我们可以使用find('td')
方法来选择每个行元素的子元素<td>
,然后获取其文本内容或链接地址。代码如下:
$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
数组保存当前行的数据,其中id
、title
、author
和date
分别对应表格的列,而link
则是文章标题的链接地址。使用$rows[] = $data
语句将$data
数组添加到$rows
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 <tr>
sous l'élément enfant <tbody>
, c'est-à-dire toutes les lignes de données du tableau. Le code est le suivant : 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 <td>
de chaque élément de ligne, puis obtenir son contenu textuel ou son adresse de lien. . Le code est le suivant :
$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!