使用php从html页面提取href
我试图使用下面的代码提取新闻标题和每个标题的链接(href),但链接提取不起作用。这只是头条新闻。请帮我找出代码出了什么问题 链接到我想从中获取标题的页面,链接来自:使用php从html页面提取href,php,html,parsing,Php,Html,Parsing,我试图使用下面的代码提取新闻标题和每个标题的链接(href),但链接提取不起作用。这只是头条新闻。请帮我找出代码出了什么问题 链接到我想从中获取标题的页面,链接来自: 提前感谢您的帮助 尝试这样做: <?php $data= file_get_contents('http://web.tmxmoney.com/news.php?qm_symbol=BCM'); $dom = new DOMDocument(); @$dom->loadHTML($data);
提前感谢您的帮助 尝试这样做:
<?php
$data= file_get_contents('http://web.tmxmoney.com/news.php?qm_symbol=BCM');
$dom = new DOMDocument();
@$dom->loadHTML($data);
$xpath = new DOMXPath($dom);
$hrefs= $xpath->query('/html/body//a');
for($i = 0; $i < $hrefs->length; $i++){
$href = $hrefs->item($i);
$url = $href->getAttribute('href');
$url = filter_var($url, FILTER_SANITIZE_URL);
if(!filter_var($url, FILTER_VALIDATE_URL) === false){
echo '<a href="'.$url.'">'.$url.'</a><br />';
}
}
?>
我找到了解决办法。下面是:
<?php
$data = file_get_contents('http://web.tmxmoney.com/news.php?qm_symbol=BCM');
$dom = new domDocument;
@$dom->loadHTML($data);
$dom->preserveWhiteSpace = true;
$xpath = new DOMXPath($dom);
$rows = $xpath->query('//div');
foreach ($rows as $row) {
$cols1 = $row->getElementsByTagName('a');
$link = $cols1->item(0)->nodeType === XML_ELEMENT_NODE ? $cols1->item(0)->getAttribute('href') : '';
$cols2 = $row->getElementsByTagName('span');
$title = $cols2->item(0)->nodeValue;
$source = $cols2->item(1)->nodeValue;
echo $title . '<br>';
echo $source . '<br>';
echo $link . '<br><br>';
}
?>
item(0)->getAttribute('href'):'';
$cols2=$row->getElementsByTagName('span');
$title=$cols2->item(0)->nodeValue;
$source=$cols2->item(1)->nodeValue;
echo$title。”
';
echo$source。”
';
echo$link。”
';
}
?>
感谢您的回答。您的代码回显网页中的一些链接,但它们不属于标题(新闻稿)。我在问题中粘贴的代码呼应所有新闻(标题),但没有相应标题的链接。我试着玩弄你的代码(包括修改$hrefs,但没用)。请在有足够时间时再试一次。再次感谢!很抱歉,我无法访问该网页,因此无法测试代码。
<?php
$data = file_get_contents('http://web.tmxmoney.com/news.php?qm_symbol=BCM');
$dom = new domDocument;
@$dom->loadHTML($data);
$dom->preserveWhiteSpace = true;
$xpath = new DOMXPath($dom);
$rows = $xpath->query('//div');
foreach ($rows as $row) {
$cols1 = $row->getElementsByTagName('a');
$link = $cols1->item(0)->nodeType === XML_ELEMENT_NODE ? $cols1->item(0)->getAttribute('href') : '';
$cols2 = $row->getElementsByTagName('span');
$title = $cols2->item(0)->nodeValue;
$source = $cols2->item(1)->nodeValue;
echo $title . '<br>';
echo $source . '<br>';
echo $link . '<br><br>';
}
?>