【发布时间】:2015-08-20 17:53:46
【问题描述】:
这个问题类似于this one。
我正在使用以下 PHP 和lazyload.js 在网页中生成图像。此 PHP 的目的是自动/动态地从给定目录加载图像并避免直接超链接。当我尝试使用各种站点地图生成器(在线和下载的)时,他们只能看到loader.gif 而看不到正在加载的真实图像。我知道我可以手动 create an image sitemap .xml 并上传到 Google Search Console,但我想避免这种情况,因为我有大量图片,其中许多可能会定期更改。
这样的 PHP 是不可抓取的吗?是否有另一种更优雅的解决方案可以像这样动态生成图像,并且可以很好地与爬虫配合使用?提前致谢。
<?php
$dirname = "images/directoryname/";
$images = scandir($dirname);
$ignore = Array(".", "..");
foreach($images as $curimg){
if(!in_array($curimg, $ignore)) {
echo "<img class=\"img-responsive lazy\" src=\"images/loader.gif\" data-original='".$dirname.$curimg."' alt='Alt text goes here' /><br>";
}
}
?>
【问题讨论】:
-
站点地图生成器将从页面源中获取所有图像,而不是像浏览器那样解析 javascript 以获取可能加载的图像列表。另一方面,谷歌通常可以解析 javascript,但我不确定你是否会得到像图像这样的东西。您可以在站点生成器爬取您的站点时关闭延迟加载几分钟,甚至在您看到 googlebot 时将其禁用。
-
@JonathanKuhn 这是有道理的。所以问题不在于 PHP,而是与 javascript 相关?
-
是的。生成站点地图的站点爬虫只会拉取页面源并查找所有
<img标签并拉取它们的src值。不运行 javascript 以获取通过 javascript 延迟加载的所有内容。 -
谢谢老兄! @JonathanKuhn
-
如果这回答了您的问题,我将其发布为答案。请随意接受,以便关闭。
标签: php image seo web-crawler google-crawlers