从外部页面获取值?

时间:2013-04-02 03:57:25

标签: php javascript jquery

此代码位于外部网址:www.example.com。

</head><body><div id="cotizaciones"><h1>Cotizaciones</h1><table cellpadding="3" cellspacing="0" class="tablamonedas">
  <tr style="height:19px"><td class="1"><img src="../mvd/usa.png" width="24" height="24" /></td>
  <td class="2">19.50</td>
  <td class="3">20.20</td>
  <td class="4"><img src="../mvd/Bra.png" width="24" height="24" /></td>
<td class="5">9.00</td>
<td class="6">10.50</td>
  </tr><tr style="height:16px" valign="bottom"><td class="15"><img src="../mvd/Arg.png" width="24" height="24" /></td>
<td class="2">2.70</td>
<td class="3">3.70</td>
<td class="4"><img src="../mvd/Eur.png" width="24" height="24" /></td>
<td class="5">24.40</td>
<td class="6">26.10</td>
</tr></table>

我想获得td的值,有什么建议吗? php,jquery等。

2 个答案:

答案 0 :(得分:4)

由于安全限制只允许您从自己的网站加载数据,因此您将无法使用javascript执行此操作。

您必须使用php(使用像file_get_contents这样简单的内容)来提取内容,然后解析它。

对于解析,请阅读这篇全面的文章:

How do you parse and process HTML/XML in PHP?

DOM可能是您最好的选择。

尝试玩这个:

$html = file_get_contents('/path/to/remote/page/');
$dom = new DOMDocument;
$dom->loadHTML($html);
foreach ($dom->getElementsByTagName('td') as $node) {
    echo "Full TD html: " . $dom->saveHtml($node) . "\n";
    echo "TD contents: " . $node->nodeValue . "\n\n";
}

答案 1 :(得分:0)

它不可能与jquery一起使用,但是你可以用PHP轻松完成它。

使用file_get_contents将页面的完整源代码读入字符串。

解析,标记包含整个页面源的字符串,以获取所有td值。

<?php
$srccode = file_get_contents('http://www.example.com/');
/*$src is a string that contains source code of web-page http://www.example.com/

/*Now only thing you have to do is write a function say "parser" that tokenise or parse the string in order to grab all the td value*/

$output=parser($srccode);
echo $output;

?>

在解析字符串以获得所需的输出时必须非常小心。对于解析,您可以使用正则表达式或创建自己的查找表。您可以使用PHP5编写的HTML DOM解析器,它允许您操作HTML一个非常简单的方法。很多这样的免费解析器都可用。