我正在尝试提取data-href
的URL,但是遇到了一些麻烦。它没有标签。所以我不知道如何获取data-href属性。该网站位于:https://www.proud-web.jp/search/kansai/area/osaka/
这是我想要的数据:
<div class="box-search-result">
<form action="/module/material/SiryoOrderTop.xphp" method="GET" name="favoritebox" target="_blank">
<ul class="list-search-result">
<li class="list-search-result-item" data-href="https://www.proud-web.jp/kansai/mansion/shimizudani/"
这是我的代码:
$url = 'https://www.proud- web.jp/search/kansai/area/osaka/';
$parser = getSiteContent($url);
$link = [];
$allDivs = [];
$allDivs = $parser->getElementsByTagName('div');
foreach ($allDivs as $div) {
if ($div->getAttribute('class') == 'box-search-result') {
$linkRef = $div->getAttribute('data-href');
var_dump($linkRef);
}
}
如何获取data-href
的URL?任何想法?谢谢!
我正在使用DOMparser。
答案 0 :(得分:1)
您想从每个li
中获取div
元素,然后获取data-href
属性。您只是想从div抓起
$allDivs = $parser->getElementsByTagName('div');
foreach ($allDivs as $div) {
if ($div->getAttribute('class') == 'box-search-result') {
$allLi = $div->getElementsByTagName('li');
foreach ($allLi as $li){
$linkRef = $li->getAttribute('data-href');
var_dump($linkRef);
}
}
}
我不是100%肯定domParser的语法,但是问题与您抓住div
而不是li
时一样。您可能必须遍历childNodes
变量的$div
属性,并检查nodeName
是否为ul
,然后遍历那些变量的childNodes
属性寻找li
作为nodeName
例如
$allDivs = $parser->getElementsByTagName('div');
foreach ($allDivs as $div) {
if ($div->getAttribute('class') == 'box-search-result') {
foreach($div->childNodes as $node) {
if($node->nodeName == 'ul') {
foreach($node->childNodes as $liNode) {
if ($liNode->nodeName == 'li') {
$linkRef = $liNode->getAttribute('data-href');
var_dump($linkRef);
}
}
}
}
}
}