我可以使用cURL来获取一个html表吗?

时间:2009-08-07 03:36:20

标签: php curl

我正在尝试使用cURL抓住一个外部网页进入我自己的网站,它基本上是一个体育团队的“阶梯”,我联系了他们,但是他们没有梯形图的RSS提要,所以我试图通过其他方式获得阶梯,是否有可能抓住<表>和< / table>使用cURL?我可以使用以下代码获取我想要的页面,但除了HTML表格之外我不需要任何其他内容。

$ch = curl_init ("http://www.sportingpulse.com/rpt_ladder.cgi?results=N&round=15&client=1-3909-47801-81021-6151461&pool=-1");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
echo $page = curl_exec($ch);

如果有人可以帮助我,那就太好了。感谢

李亚男

3 个答案:

答案 0 :(得分:5)

好的,所以我设法让它使用它(如果有其他人想知道的话)

$ch = curl_init ("http://www.sportingpulse.com/rpt_ladder.cgi?results=N&round=15&client=1-3909-47801-81021-6151461&pool=-1");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$page = curl_exec($ch);

preg_match('#<table[^>]*>(.+?)</table>#is', $page, $matches);
foreach ($matches as &$match) {
    $match = $match;
}
echo '<table>';
    echo $matches[1];
echo '</table>';

:)

答案 1 :(得分:2)

您需要使用curl来获取页面内容和字符串处理,以便从返回的字符串中提取表格。

一个简单的正则表达式将是:

/<table>(.*)<\/table/s

因此,如果您采用上述示例,您可以执行以下操作:

$page = curl_exec($ch);

if (preg_match("/<table>(.*)<\/table/s", $page, $matches)) {
    echo $matches[1];
}

此代码将与页面上的第一个表匹配。您需要调整它以匹配您要提取的HTML。

答案 2 :(得分:1)

纯正则表达式的另一种选择是使用DOMDocument和xPath。这会将整个文档转换为对象,并使表格的内容更容易处理