从<a> tag using PHP

时间:2016-01-03 00:28:24

标签: php web-scraping html-parsing

I am using simple_html_dom to retrieve href attribute value from a HTML tag. The data I am scraping is placed in the HTML table. The following code successfully points the data and display it as hyperlinks.

// Include the library to use it.
include_once('simple_html_dom.php');

// Get the HTML from the file or website.
$html = file_get_html('source.html');

// Put all of the <a> tags into an array named $result
$result = $html -> find('table tbody tr td a');

// Run through the array using a foreach loop and print each link out using echo
foreach($result as $link) {
echo $link."<br/>";
}

But I need the href value from a tag, and for this purpose I followed Retrieve multiple value of a <a href> tag using php说明中刮取href值并使用以下代码,但它会再次搜索整个文档并提取位于表外的所有链接。我还将$html替换为$result$link,但它不会显示任何内容。

preg_match_all("/href=\"(.*?)\"/i", $html, $matches);
print_r($matches);

如何使用上述方法之一从HTML表格下的href属性中获取值?该表没有任何类或id可以在选择器中使用它。

注意:我也调查过:Retrieve The link value form <a href> tag using php但是无法理解。

1 个答案:

答案 0 :(得分:1)

我使用preg_match代替preg_match_all,然后使用echo而不是print。以下代码以第一个链接为目标并在屏幕上显示。

preg_match("/href=\"(.*?)\"/i", $html, $matches);
echo $matches;