我正在从这样格式化的页面上获取数据
<span id="RANDOMINFO">
<a href="/DEMO/RANDOMDATA">+</a>
<span title="1">DATA I WANT HERE</span>
<a href="https://URL.COM/">CLICK</a>
<a href="https://URL.COM/">MORE RANDOM DATA</a>
</span>
<span id="RANDOMINFO">
<a href="/DEMO/RANDOMDATA">+</a>
<span title="2">DATA I WANT HERE</span>
<a href="https://URL.COM/RANDOM">CLICK</a>
<a href="https://URL.COM/RANDOM">MORE RANDOM DATA</a>
</span>
如何从页面获取href值
这里是我必须从span ID
获取数据的代码,但是由于存在href
,所以不知道如何为no name or id
做数据
$doc = new DOMDocument();
@$doc->loadHTML($html2);
foreach($doc->getElementsByTagName('span') as $element )
{
if (!empty($element->attributes->getNamedItem('id')->value))
{
$filename = 'newpks/'.$f.'.txt';
$file = fopen($filename,"a");
$data = $element->attributes->getNamedItem('id')->value.PHP_EOL;
fwrite($file,$data);
fclose($file);
$i++;
$end = $start;
}
}
答案 0 :(得分:2)
我假设您只对具有href
属性的链接感兴趣,然后我们知道标记的类型为a
。这样就足够了(尽管我还无法测试代码)。
我对代码进行了一些优化,因为DOMNode
类继承自DOMElement
,因此您可以使用hasAttribute
和getAttribute
。
foreach($doc->getElementsByTagName('a') as $element ) {
if ($element->hasAttribute('href')) {
$href = $element->getAttribute('href');
// Do your work here
}
}