[英]How to extract hyperlink using php
我已經在網上搜索過,並認為這樣做可以,但是由於某些原因,它沒有用。 我正在嘗試提取僅顯示HTML中URL的超鏈接。 我只是想在td align =“ center”中提取URL。 這是我嘗試提取的HTML文檔的示例:
<td>
Aug 17
</td>
<td>
FT
</td>
<td align="right">
<a href="site1">Arsenal ruby</a>
</td>
**<td align="center">**
<a href="site2">1-3</a>
</td>
<td><a href="site3">Aston Villa</a></td>
<td style="text-align:right;">60,003</td>
這是我的PHP代碼,可從td align =“ center”中提取出來:
<?php
//$searchURL = "site";
include 'simple_html_dom.php';
$site = 'website';
$html = file_get_html($site);
$tabledata = array();
// Find all TD tags with "align=center"
foreach($html->find('td[align=center]') as $e)
echo $e->href . '<br>';
?>
我知道代碼有效,因為如果只是兵營中的td,那么代碼可以提取所有內容。
因此,您已經標識了<td>
元素本身,但是並沒有進入下一個嵌套級別來從<a>
元素中獲取href
。 您可以這樣做:
foreach($html->find('td[align=center]') as $e)
echo $e->children(0)->href . '<br>';
使用DOM和Xpath:
選擇文檔中的所有td元素
//td
僅當align屬性等於“ center”時
//td[@align="center"]
獲取子元素
//td[@align="center"]//a
獲取的href屬性節點a
元素
//td[@align="center"]//a/@href
來源示例:
$html = <<<'HTML'
<td>
FT
</td>
<td align="right">
<a href="site1">Arsenal ruby</a>
</td>
**<td align="center">**
<a href="site2">1-3</a>
</td>
<td><a href="site3">Aston Villa</a></td>
<td style="text-align:right;">60,003</td>
HTML;
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXpath($dom);
$nodes = $xpath->evaluate('//td[@align="center"]//a/@href');
foreach ($nodes as $node) {
var_dump($node->value);
}
您選擇了td元素。 錨元素是td元素的子元素。
// Find all TD tags with "align=center"
foreach($html->find('td[align=center]') as $e)
echo $e->firstChild()->getAttribute('href') . '<br>';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.