【问题标题】:Loading a certain area of HTML from an external domain webpage into a div将外部域网页中的某个 HTML 区域加载到 div 中
【发布时间】:2012-07-20 11:59:20
【问题描述】:

我目前正在为一家公司设计一个网站,该公司使用外部网站来显示有关其客户的信息。目前,他们的旧网站只是放置了一个指向每个客户的外部资料的链接。然而,通过这次重建,我想知道是否有任何方法可以将外部网站的特定部分加载到他们的新页面上。

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

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

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

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

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

我希望我已经很清楚我对所有这些后端的东西都很陌生!

【问题讨论】:

    标签: php jquery ajax web screen-scraping


    【解决方案1】:

    首先我会使用从网页中抓取内容: 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类的段落内容

    【讨论】:

    • 谢谢你,但正如我所说,实际数据不在 div 中,它是一个用类标签定义的段落标签。这种方法能用吗?
    • 非常感谢您快速准确的回复!
    【解决方案2】:

    您可以使用xpath 语法将其从文档中抓取出来。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-11
      • 2011-12-30
      • 1970-01-01
      • 2011-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多