簡體   English   中英

如何使用PHP提取超鏈接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM