2016-05-12 3 views
2

いくつかのhtml、css、phpを学ぶために、私はサッカーの得点を示す簡単なページを作ることにしました。私はPHPのシンプルなHTML DOMパーサーを使って、サッカースコアとリーグテーブルをthis BBC webpageから検索していますが、これは簡単ではありましたが、私が今したいことは目標スコアラーを取得することです。残念ながら、この情報は、フィクスチャがクリックされてテーブルが展開されるまでページに含まれていないため解析できません。部分的なIDを取得し、結果を使用して別のURLを解析するには、PHPの単純なHTML Dom Parserを使用しますか?

Iは、各表の行は、次のIDを持っていることに気づいた:

<tr id="match-row-EFBO803510" class="report"> 
<tr id="match-row-EFBO803454" class="report"> 
<tr id="match-row-EFBO803452" class="report"> 

IはEFBO始まるIDの末尾の文字列が固定具IDであることを見出し、いくつかは、約いじった後。このIDは、URLの末尾に追加することができ、それは私がそうのように探している情報のページに私を取るよ:

http://www.bbc.co.uk/sport/football/live/partial/EFBO803510

だから、私は何を望んでいることは、解析されこれらのテーブル行のサイトは、治具IDを取得し、bbc.co.uk /sport/football/live/partial/の最後にそれぞれを追加して解析する新しいURLを生成します。

これは可能ですか?申し訳ありませんが、サンプルコードがありません、私が試みたすべてのPHPエラーを投げていた。 、その最初のリンクの例として、

<tbody> 
    <tr id="match-row-EFBO804038" class="report"> 
    <td class="match-score"> 
     <button class="hidden-text">Show stats panel</button> 
     <span class="team-home">Brighton</span> 
     <span class="score">5 - 0</span> 
     <span class="team-away">Fulham</span> 
     <span class="elapsed-time">Result</span> 
    </td> 
    <td class="match-link"> 
     <a href="/web/20160415225751/http://www.bbc.co.uk/sport/football/35994191">Report</a> 
    </td> 
    </tr> 
    <tr id="match-panel-EFBO804038" class="panel-showing live"> 
    <td class="details-table-container" colspan="2"></td> 
    </tr> 
    <tr class="row-spacer"> 
    <td colspan="2">&nbsp;</td> 
    </tr> 
</tbody> 

答えて

1

:この表はBBCのウェブサイト上でどのように見えるかの例であるhttp://www.bbc.co.uk/sport/football/live-scores

これは、あなたがDOM解析しているサイトのようだ、と<tr id="match-row-EFBO851386" class="fixture">あり、そのEFBO851386は2回、1回だけ、1回はすぐ下に繰り返されます。

私は、CLASS 'fixture'で最初のTRを解析し、idを取得するにはreplace("match-row-",$val)を解析することをお勧めします。あなたが述べたようにURLに追加することができ

"http://www.bbc.co.uk/sport/football/live/partial/".$id

あなたが生成されたページへのURLの復帰を追加する方法は、あなたが最初の情報を追加する方法に完全に依存します。

私は通常、ajaxを使用し、最初のhtmlレスポンスの下にniceスピンナーを追加しますが、それはそうしています。

しかし、最初のHTML応答を返す前にそれを取得することができます。実際にどのように実際に解析し、返されたコンテンツをどのように使用するかによって異なります。

関連する問題