ウェブサイト上のテーブルからデータを掻き取ろうとしています。次のようなPHPが書かれていますが、動作しません。シンプルなHTML DOMを使用してテーブルをループする
次のエラーが受信:お知らせ:ライン上DataScraping.phpで非オブジェクトのプロパティを取得しようとすると27
また//Sets the HTML DOM Library
require_once 'C:/xampp/php/lib/SimpleHTMLDOM/simple_html_dom.php';
$html = new simple_html_dom();
$html = file_get_html('https://www.flightradar24.com/data/flights/british-airways-ba-baw');
foreach($html->find('table[id=tbl-datatable]') as $datatable) {
foreach($datatable->find('tr') as $tr) {
foreach($tr->find('td') as $td) {
if(strpos($td->find('a', 0)->href, 'https://www.flightradar24.com/data/flights/') !== false) {
echo $td->find('a', 0)->innertext .", " .$td->find('a', 0)->href;
}
}
}
}
、このデータは一般に公開され、それは個人的な使用のためだけでは言及する価値。著作権侵害についてはコメントしないでください。私がしたいことには何も問題はありません。
私は、フライトナンバーだけを掻き取ろうとしています。内側のテキストとその背後にあるサイトのURLの両方を削っています。私が間違っている場所の助け?
追加のテストでは、私は必要なデータを提供しますが、行の間で同じエラーを持つ:
foreach($html->find('table[id=tbl-datatable]') as $datatable) {
foreach($datatable->find('tr') as $tr) {
foreach($tr->find('td') as $td) {
if (strpos($td->find('a', 0)->href, '/data/flights/') !== false) {
$test = $td->find('a', 0)->href;
$test2 = $td->find('a', 0)->innertext;
echo $test .", " .$test2;
}
}
}
}
アルそうです、その行のどれが27行ですか? –
if文の後のエコー。 – DARKOCEAN
ifステートメントがtrueを評価するのは驚きです(しかし、そのエラーが表示されていなければなりません)。私がそのページのソースを見ると、hrefsはすべて相対的です。たぶん、SimpleHTMLDOMのしくみを理解していないかもしれません。 –