[英]how to make a database from a html file?
我有一個 HTML 文件,其中包含許多<tr>
標簽,例如
<tr>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
aaa
</td>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
bbb
</td>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
ccc
</td>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
ddd
</td>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
eee
</td>
</tr>
<tr>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
xxx
</td>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
vvv
</td>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
bbb
</td>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
nnn
</td>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
hhh
</td>
</tr>
我想從這個值(aaa,bbb,ccc .....)創建一個數據庫。
如何分離此標簽並選擇正確的值?
我想使用 php 進行此選擇。
如果文件是正確的 XML,則可以使用 XPath 遍歷元素。
$content = <<<EOT
<html>
<tr>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
aaa
</td>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
bbb
</td>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
ccc
</td>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
ddd
</td>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
eee
</td>
</tr>
<tr>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
xxx
</td>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
vvv
</td>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
bbb
</td>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
nnn
</td>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
hhh
</td>
</tr>
</html>
EOT;
$xml = new SimpleXmlElement($content);
$result = $xml->xpath("//td");
$values = array();
foreach($result as $node) {
$values[] = trim((string)$node);
}
var_dump($values);
提取數據后,您可以使用mysqli_connect連接到數據庫,然后mysqli_query運行查詢將數據插入表中。
此代碼假定您問題中的 HTML 正是您要從中提取數據的 HTML,因此我使用行縮進和換行符來提取數據,如下所示:
$content = <<<EOT
<html>
<tr>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
aaa
</td>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
bbb
</td>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
ccc
</td>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
ddd
</td>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
eee
</td>
</tr>
<tr>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
xxx
</td>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
vvv
</td>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
bbb
</td>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
nnn
</td>
<td class="parsehlisttable_alteritemstyle" style="text-align: right;">
hhh
</td>
</tr>
</html>
EOT;
$lines = explode("\n", $content);
foreach($lines as $line)
{
if( trim($line) == trim(strip_tags($line)) && $line != '' )
{
$line = trim($line);
$mydata[] = $line;
}
}
foreach($mydata as $data)
{
mysql_query("INSERT INTO .... VALUES (NULL, '" . $data . "' ) ");
}
祝你好運
首先,我將 html 頁面轉換為 xls 文件,然后使用 libreoffice calc 將其轉換為 CSV 文件。
然后我將 CSV 導入 mysql 表。 但是這張桌子沒有我需要的那么好。 所以我使用了一些 php 代碼並讀取了數據庫並將其重新寫入新表上。 現在我從 HTML 文件中獲得了一個干凈且有用的數據庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.