gpt4 book ai didi

PHP网页解析到MYSQL数据库

转载 作者:行者123 更新时间:2023-11-28 03:25:00 25 4
gpt4 key购买 nike

我在这里有一个问题。我正在解析网页,这是我当前的代码:

<?php
// Include the library
include('simple_html_dom.php');

// Retrieve the DOM from a given URL
$html = file_get_html('siteone.htm');

// //Dates
echo 'Dates:<br />';
foreach($html->find('div.collectionLog td') as $e) {
$text = $e->innertext;
$string = preg_replace("/\([^)]+\)/","",$text);
echo $string . '<br>';
}
?>

这是 HTML 代码:

<div class="data-container collectionLog">
<h3>Collection Log</h3>
<div id="lcLoanPerf2">

<table id="lcLoanPerfTable2" class="plain-table">
<tbody>

<tr class="odd">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="odd">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="odd">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="odd">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="odd">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="odd">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="odd">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="odd">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="odd">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="odd">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="odd">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="odd">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

</tbody>
</table>
</div>

现在我要做的是将信息插入数据库。我知道如何轻松做到这一点,但我对如何做到这一点感到困惑,因此它在同一行中插入了 td 时间和没有类/id 的 td。
所以基本上我想要:

                    <td class="time">**/**/**</td>
<td>***********</td>

成一排,基本上是<tr class="">在它自己的 MYSQL 行中。
抱歉,如果我的描述不够充分,这是第一次,很难解释。
如果您不明白,请告诉我。只是想让这成为可能。

谢谢,
加曼

最佳答案

请使用类似 PHP Simple HTML DOM 的内容或 Symfony DOM Crawler (使用 Symfony CSS Selector )用于解析网站,而不是正则表达式。

使用 Symfony DOM 爬虫,查看这个工作示例:

<?php

include 'vendor/autoload.php';

use Symfony\Component\DomCrawler\Crawler;

$crawler = new Crawler('<div class="data-container collectionLog">
<h3>Collection Log</h3>
<div id="lcLoanPerf2">

<table id="lcLoanPerfTable2" class="plain-table">
<tbody>

<tr class="odd">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="odd">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="odd">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="odd">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="odd">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="odd">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="odd">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="odd">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="odd">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="odd">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="odd">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="odd">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

<tr class="">
<td class="time">**/**/**</td>
<td>***********</td>
</tr>

</tbody>
</table>
</div>');

$tfList = $crawler->filter('#lcLoanPerfTable2 tr td');

foreach($tfList AS $list) {
foreach($list->childNodes as $node) {
var_dump($node->wholeText);
}
}

这样你就有了 td 列表和 foreach 中的(在本例中是两个)td 元素。您可以将它们保存到数据库中,或者用它做任何您想做的事情。

关于PHP网页解析到MYSQL数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21896968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com