如何使用PHP在另一个网站上获取另一个DIV的HTML

时间:2013-12-31 02:58:36

标签: php html

所以,说我有我的网站:

<div id="MySiteDIV">
 <!-- Content in here -->
</div>

和其他人的网站:

<div id="CTs_g">
 <p>Hello</p>
  <div id="AG_g">This is my website</div>
</div>

如何获取HTML以及我的网站上的所有内容,它最终会像:

<div id="MySiteDIV">
 <!-- Content in here -->

<div id="CTs_g">
 <p>Hello</p>
  <div id="AG_g">This is my website</div>
</div>

</div>

我已经看过(并尝试过)DOMDocument(),但它似乎只能获取的内容,但我需要HTML

2 个答案:

答案 0 :(得分:1)

你走了:

$dom = new DOMDocument();
$yourDom = new DOMDocument();
$yourDom->loadHTML(file_get_contents('your_template'));
$dom->loadHTML(file_get_contents('other_website'));

// You can now use the DOMDocument methods to parse whatever you want.
$div = $dom->getElementById("CTs_g");
$clone = $div->cloneNode(true);
$yourDiv = $yourDom->getElementById("MySiteDIV");
$yourDiv->appendChild($clone);

答案 1 :(得分:0)

正如@Mohammad所提到的,你需要使用php。您将首先使用file_get_contents:

获取远程页面
$html = file_get_contents('http://othersite.com');

然后使用preg_match(正则表达式)或某些进行页面抓取的第三方库解析它,例如https://code.google.com/p/phpquery/ PHPQuery

使用preg_match更容易,但您需要能够定义所需部分的开头/结尾。如果您确切地知道 - 或者理想情况下您是否可以控制其他站点,在这种情况下我会添加开始/结束注释标签 - 那么您可能需要通过php查询运行整个页面,这对于找到正确的部分。

在上面的例子中,很容易定义开始(即id =“MySiteDIV”),但结束要复杂得多。所以我的建议是在该远程站点中找到两个独特的部分并使用preg_match来获取它。欢迎来到正则表达式。