此问题与this one类似。
我使用以下PHP结合lazyload.js在网页中生成图像。此PHP的目的是自动/动态加载给定目录中的图像,并避免直接超链接。当我尝试使用各种站点地图生成器(在线和下载)时,他们只能看到loader.gif
并且看不到正在加载的真实图像。我知道我可以手动create an image sitemap .xml并上传到Google搜索控制台,但我想避免这种情况,因为我有大量的图片,其中很多可能会定期更改。
这样的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>";
}
}
?>
答案 0 :(得分:0)
站点地图生成器将从您的页面源获取所有图像,而不是像浏览器一样解析javascript以获取可能加载的图像列表。另一方面,谷歌通常可以解析javascript,但不确定自己是否会获得像图像这样的东西。您可以关闭延迟加载几分钟,而网站生成器会抓取您的网站,如果您看到googlebot,甚至可以将其停用。
生成站点地图的网站抓取工具只会提取网页来源并查找所有<img
代码并提取其src
值。不运行javascript来获取通过javascript延迟加载的所有内容。