第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 PHP 抓取 HTML 表格數(shù)據(jù)

如何使用 PHP 抓取 HTML 表格數(shù)據(jù)

PHP
MMTTMM 2023-06-24 18:12:57
編輯:沒有說清楚。我正在使用 PHP我正在嘗試創(chuàng)建一個現(xiàn)代化的 Boxrec 網(wǎng)站,我正在從維基百科抓取數(shù)據(jù)。在拳擊手的每個維基百科頁面中,都有一張他們的比賽表格。我已經(jīng)成功地從另一個表中提取了勝利、失敗和平局數(shù)據(jù)。我如何使用 PHP 將戰(zhàn)斗表數(shù)據(jù)提取到某種(2D?)純文本數(shù)組中?這是該表的鏈接(這是第二個表,較大的一個) https://en.wikipedia.org/wiki/Sugar_Ray_Robinson#Professional_boxing_record這是我嘗試過的代碼(我可能完全不同意這個)$dom = new domDocument;$dom->loadHTML($table);$dom->preserveWhiteSpace = false;$tables = $dom->getElementsByTagName('table');$rows = $tables->item(1)->getElementsByTagName('tr');foreach ($rows as $row) {        $cols = $row->getElementsByTagName('td');        echo $cols[2];}這給了我警告: DOMDocument::loadHTML():意外的結(jié)束標記:實體中的 div,第 38 行 C:\xampp\htdocs\boxing\search\index.php 中的第 4375 行
查看完整描述

1 回答

?
忽然笑

TA貢獻1806條經(jīng)驗 獲得超5個贊

我看到的幾個問題:

  1. $tables->item(1)->getElementsByTagName('tr');將始終為您提供頁面中的第二個表格,該表格將是右側(cè)個人統(tǒng)計數(shù)據(jù)塊中的表格

  2. 由于$cols[2]不是簡單類型的對象,您將收到警告而不是內(nèi)容。用于echo $cols[2]->textContent輸出內(nèi)部文本。

我建議加載所有表,然后根據(jù)結(jié)果表中不同的表標題進行檢查(如果您正在解析結(jié)果表)。然后提取適當?shù)牧小?/p>

示例代碼:

下面的代碼僅顯示如何檢查表中的示例標題“Result”,然后輸出結(jié)果列。請根據(jù)您的預期目的進行調(diào)整。

<?php

$table = file_get_contents('https://en.wikipedia.org/wiki/Sugar_Ray_Robinson');


$dom = new DOMDocument;


$dom->loadHTML($table);

$dom->preserveWhiteSpace = false;

$tables = $dom->getElementsByTagName('table');


foreach ($tables as $singleTable) {

    try {

        $rows = $singleTable->getElementsByTagName('tr');

        // check if we are parsing the right table:

        $row1= $rows[0]->getElementsByTagName('th');

        

        $isResultTable= FALSE;

        foreach ($row1 as $th) {

            if (trim($th->textContent) === 'Result') {

                $isResultTable = TRUE;

            }

        }

        

        if (!$isResultTable) continue;

        

        foreach ($rows as $row) {   

            $cols = $row->getElementsByTagName('td');

            echo $cols[2]->textContent;

        }       

    } catch (Exception $ex) {

        print_r($ex);

    }

}


查看完整回答
反對 回復 2023-06-24
  • 1 回答
  • 0 關(guān)注
  • 175 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號