【问题标题】:How to detect hotlink image when grabbing抓取时如何检测热链接图像
【发布时间】:2015-03-08 06:27:28
【问题描述】:

假设我有一个用于抓取图像的谷歌搜索 api。当我想获取某些图像时,使用该 api,我会从中获得许多图像。但有时我会得到热链接图片。

是否可以通过编程方式检测哪个是热链接图像,尤其是使用 PHP?

如果可以的话,你能告诉我怎么做吗?

或者有没有办法从 google api 结果中排除热链接图像?

注意:我没有使用 wget 抓取。我只想检测哪一张是盗链图片。

【问题讨论】:

    标签: php image google-api hotlinking


    【解决方案1】:

    热链接图像将具有完全限定的 url。您所要做的就是比较您从中获取图像的站点的主机。在 PHP 中,您将使用

     $siteHost = parse_url($site_url, PHP_URL_HOST);
    
     $imgHost = parse_url($img_src_url, PHP_URL_HOST);
     if($siteHost == $imgHost){grab_image($img_src_url);)
    

    【讨论】:

    • 它能检测出哪个是热链接图像,哪个不是?
    • 您从 API 返回的原始 URL 获取 siteHost。
    • { "kind": "customsearch#result", "link": "savoryeventcatering.com/wp-content/uploads/2013/07/IMG_1719.jpg", "displayLink": "savoryeventcatering.com", "sn-p": "2013 年 7 月 31 日by Mckell”、“htmlSnippet”:“2013 年 7 月 31 日,Mckell”、“mime”:“image/jpeg”、“image”:{ “contextLink”:“savoryeventcatering.com/2013/07/meshing-elegant-and-vintage/…”、“thumbnailLink”:“encrypted-tbn1.gstatic.com/… ", } },
    • 这是 google api json 结果之一。热链接图像之间的值并没有什么不同。那么你的代码是如何工作的呢?
    • 从“链接”获取 siteHost savoryeventcatering.com 是主机。作为缩略图链接,主机是 encrypted-tbn1.gstatic.com
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 2021-10-12
    相关资源
    最近更新 更多