PHPとcURLを使用して外部Webサイトから要素を取得しようとしています。
コンテンツを取得しようとしているWebサイトへのリンクは次のとおりです。http: //www.stayclassy.org/fundraise?fcid = 231864
私がターゲットにしている要素は
、上部の右側の列にあるリスト項目「これまでに発生した」の下の数値です(現在、値は$ 10です)。データを抽出するために使用しているコードは次のとおりです。
define( "TARGET"、 " http://www.stayclassy.org/fundraise?fcid=231864 ");
$curl = curl_init(); curl_setopt($curl, CURLOPT_URL, TARGET); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); if(!($results = curl_exec($curl))) { print("{ \"total\": \"$0.00\" }"); return; } $pattern = '/\<li class="goalTitle"\> \$(.+?) \<\/li\>\<\/a\>/'; preg_match_all($pattern, $results, $matches); $total = $matches[1][0]; $total = str_replace(",", "", $total); printf("{ \"total\": \"$%s\" }", formatMoney($total, true)); function formatMoney($number, $fractional=false) { if ($fractional) { $number = sprintf('%.2f', $number); } while (true) { $replaced = preg_replace('/(-?\d+)(\d\d\d)/', '$1,$2', $number); if ($replaced != $number) { $number = $replaced; } else { break; } } return $number; }
私が抱えている問題は、ターゲットにしているリストアイテム/要素に一意のIDまたはクラスがないことです。実際、金額はクラスのない別のリスト項目にあります。
特にクラスがない場合に、上記のコードを使用して、順序付けされていないリスト内の特定のリストアイテムをターゲットにする方法を考えていました。何か案は?