Попытка разобрать html-страницу, но возникли проблемы с захватом тегов nodeValue dt
и dd
.
$outline ="http://www.sumitomo-rd-mansion.jp/kansai/higashi_umeda/detail.cgi";
foreach ($outlineUrl as $results) {
if (strpos($results, 'http://www.sumitomo-rd-mansion.jp') === 0) {
$html = file_get_contents($results);
$DOMParser = new \DOMDocument();
$DOMParser->loadHTML($html);
$changeForMyDB = [
'region' => '関西',
'link' => json_encode($results),
'building_name' => '',
'price' => '不明',
'old_price' => '',
'extend' => '不明',
'address' => '',
'total_house' => '',
'rooms' => '',
'cons_finish' => '',
'entry' => '不明',
'balcony' => '不明',
'company_name' => '',
'list_from' => ''
];
foreach ($DOMParser->getElementsByTagName('dl') as $tr) {
$property = trim($tr->getElementsByTagName('dt')[0]->nodeValue);
$value = trim($tr->getElementsByTagName('dd')[0]->nodeValue);
switch ($property) {
case '物件名':
$changeForMyDB['building_name'] = $value;
break;
case '販売価格':
$changeForMyDB['price'] = $value;
break;
case '専有面積':
$changeForMyDB['extend'] = $value;
break;
case '所在地':
$changeForMyDB['address'] = $value;
break;
case '総戸数':
$changeForMyDB['total_house'] = $value;
break;
case '間取り':
$changeForMyDB['rooms'] = $value;
break;
case '竣工時期':
$changeForMyDB['cons_finish'] = $value;
break;
case '管理会社':
$changeForMyDB['company_name'] = $value;
break;
case '入居時期':
$changeForMyDB['entry'] = $value;
break;
case 'バルコニー面積':
$changeForMyDB['balcony'] = $value;
break;
default:
break;
}
}
}
var_dump($changeForMyDB);
}
При этом я не могу захватить все dl's dt
и dt
nodeValue.Просто получаю два.Мой цикл foreach не так или нет?Спасибо за помощь!