刮擦类名称中包含空格的标签

时间:2018-06-07 08:27:33

标签: php curl dom web-scraping

这里我有一个带有类名的html div标签,里面有空格。

<div data-marker="music-track-title" class="music-track__title text--single-line size-e"> No Vanguard Revival (Radio 1 Session, 16 May 2018) </div>

我尝试使用php curl和dom help从这个标签中获取信息,但它只返回任何内容。

到目前为止我写过的代码:(不工作)

<?php 
    include_once 'includes/db.inc.php';
    include_once 'includes/simple_html_dom.php';
    include_once 'includes/curl_init.php';
    $yesterday = date("Y/m/d", strtotime( '-1 days' ) );
    $a=NULL;
    $html=curl_get('https://www.bbc.co.uk/music/tracks/find/radio1/'.$yesterday.'/12AM');
    $dom = new DOMDocument();
    $dom = str_get_html($html);
    $myList=NULL;
    $songs=$dom->find('.music-track__top music-track__top--list');
?>

如何从div标签中获取其类名称中包含空格的信息。使用php curl,Dom。

1 个答案:

答案 0 :(得分:0)

你应该试试这个:

$finder = new DomXPath($dom);
$classname="music-track__title";
$nodes = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' $classname ')]");
$node = null;
foreach ($nodes as $element) {
    if ($element->getAttribute('class') == "music-track__title text--single-line size-e") {
        $node = $element;
        break;
    }
}

变量$elements将包含类名中包含空格的标记列表。