0

我创建了一系列大约 25 个静态站点,它们共享相同的信息,并且不得不在这里和那里更改无意义的副本,所以我编写了这个 javascript,以便所有站点都从一个位置提取内容。(简化为一个例子)

var dataLoc = "<?=$resourceLocation?>";
$("#listOne").load(dataLoc+"resources.html #listTypes");

当页面加载时,它会找到 div id listOne 然后将其替换为文件 resources.html 中的 div 的内容,并且只有那里标记为 listTypes 的 div 的内容。

我的问题:谷歌根本没有抓取这个动态内容,我被告知谷歌会抓取动态导入的信息,所以我很想知道我目前正在做什么需要改进?

我假设 js 只是被谷歌蜘蛛跳过了,所以我使用 PHP 来访问之前使用的相同 HTML 文件,它工作得很好,但它没有按照我的需要工作。这将返回文本,但我还需要标记、<li>, <p><img>标签等。也许我可以调整这个?(我不是开发人员,所以我只是尝试了我在 PHP 在线帮助中读到的几十个东西,这和我得到的一样接近)

function parseContents($divID)
    {


    $page = file_get_contents('content/resources.html');
    $doc = new DOMDocument();

    @$doc->loadHTML($page);
    $divs = $doc->getElementsByTagName('div');

    foreach($divs as $div) 
        {
        if ($div->getAttribute('id') === $divID) 
            {
            echo $div->nodeValue;
            }
        }


    }

parseContents('listOfStuff');

感谢您帮助更好地理解这一点,如果我需要更好地解释它,请告诉我:)

4

1 回答 1

1

请参阅Google 发布的使 AJAX 应用程序可抓取

于 2012-11-07T15:10:20.500 回答