将特定区域的HTML从外部域网页加载到div中

时间:2012-07-20 11:59:20

标签: php jquery ajax web screen-scraping

我目前正在为使用外部网站显示其客户信息的公司设计网站。目前,他们的旧网站只是链接到每个客户的外部配置文件。但是通过这次重建,我想知道是否有办法将外部网站的特定部分加载到新页面上。

我已经完成了我的研究,并且我发现它可以使用jQuery和AJAX(带有一点mod),但是所有教程都涉及从外部站点提升然后加载到新div中的div标签页面上的标签。

这是我的问题:在查看外部源的源代码之后,我想要的HTML行不包含在命名的DIV中(除了主包装,我无法加载它!)

我需要的标签字面意思是:<p class="currentAppearance"> data </p>

每个配置文件都在不同的行上,所以我不能只加载200行并希望最好。

有没有人有任何解决方案(最好使用php)在外部页面上搜索该标签,然后将特定标签加载到div中?

我希望我已经清楚我对所有这些后端的东西都是新手了!

2 个答案:

答案 0 :(得分:2)

首先我会用来从网页上抓取内容: http://www.php.net/manual/en/curl.examples-basic.php

$url = 'http://www.some-domain.com/some-page';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$htmlContent = curl_exec($curl);
curl_close($curl);

然后使用DomDocument(http://ca3.php.net/manual/en/book.dom.php),您将能够根据其ID访问正确的div。

$doc = new DOMDocument();
$doc->loadHTML($htmlContent);
foreach ($pElements as $pEl) {
  if ($pEl->getAttribute('class') == 'currentAppearance') {
    $pContent =  $pEl->nodeValue;
  }
}

$pContent现在设置了包含类currentAppearance

的段落内容

答案 1 :(得分:0)

您可以使用xpath语法将其从文档中删除。