将图片网址从Google搜索保存到MySQL

时间:2012-01-14 13:35:44

标签: php mysql google-image-search

当我们在Google图片搜索中输入单词时,会返回一个页面。此页面包含许多带缩略图视图的图片。我想在我的数据库(MySQL)中保存这些图像的位置URL。我需要在PHP中编写代码,我想保存前10个图像的URL。 我正在设计一个动态页面,我将从数据库中选择这些图像URL地址,并在我的动态页面上显示这些。

我已经尝试了很多,问题是我的完整URL没有保存,因为它包含许多MySQL的无效字符。我搜索了很多网站,发现了不同的功能,但我仍然不清楚这一点:我没有设计出如何做这项工作的想法。 有人可以给我一些PHP代码或程序如何完成它?

2 个答案:

答案 0 :(得分:1)

我建议您使用PHP的DOM Library。它非常强大,允许解析任何DOM结构。请参考其中的一些示例,您可以轻松实现它。

这个想法是你研究Google返回的页面的HTML结构,并相应地使用DOM库来解析特定的标签。从我看到的情况来看,图片被组织为<ul><li>标签,例如:

<ul class="rg_ul" data-pg="1" data-cnt="6">
    <li class="rg_li" data-row="1" style="width:216px;height:162px"></li>
    <li class="rg_li" style="width:231px;height:162px"></li>
    <li class="rg_li" style="width:218px;height:162px"></li>
    <li class="rg_li" style="width:216px;height:162px"></li>
    <li class="rg_li" style="width:216px;height:162px"></li>
    <li class="rg_li" style="width:217px;height:162px"></li>
</ul>

在每个<li>标记中都有其他标记,其中一个标记为<a>。这个标签似乎有2个属性 - “imgrefurl”和“imgurl” - 这可能会为你提供所需的图像。您需要以下两个属性中的哪一个供您探索。

或者,<img>中的<li>标记具有包含实际图像二进制的“src”属性。所以你也可以解析它。请注意,二进制文件适用于您在搜索页面上看到的图像,而不是实际图像。

对于DOM的一些指针,此方法可能很有用 - http://www.php.net/manual/en/domelement.getelementsbytagname.phphttp://www.php.net/manual/en/domelement.hasattribute.php - 读取所有<li>标记,然后使用类“rg_li”解析那些标记。

我希望上述内容有意义

答案 1 :(得分:0)

您可以使用PHP curl libraries和PHP类DOMDocument实现此目的,然后使用Mysql or Mysqli libreries连接到数据库。可以在此处找到MySQL帮助:MySQL Doc