2012-01-14 54 views
0

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

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

+0

感谢答复,我试图图像API过,但看起来,我无法实现我的目标在此刻 – 2012-01-14 13:47:12

+1

的就是你得到的图像链接,真正的问题却可以因为无效字符而将它添加到数据库,或者您有关于获取图像url的问题? http://jsfiddle.net/cXwxB/ – ocanal 2012-01-14 13:57:15

+0

我真正的问题是获取图像网址,然后将它们保存到数据库,至少我想要的代码,可以得到一个特定的词搜索图像网址..真的谢谢你帮我 – 2012-01-14 14:08:25

回答

1

我建议你应该使用PHP的DOM Library。它非常强大并且允许解析任何DOM结构。参考它的一些例子,你可以很容易地实现它。

这个想法是,你研究谷歌返回的页面的HTML结构,并相应地使用DOM库来解析特定标签。在每个<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> 

有额外的标签,其中之一是<a>:从我所看到的,图像被组织为<ul><li>标签,等等。这个标签似乎有两个属性 - “imgrefurl”和“imgurl” - 这可能会给你你需要的图像。您需要的这两个属性中的哪一个是供您探索的。

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

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

希望以上有意义

+0

http://stackoverflow.com/questions/8870519/php-prodom-parsing-error我问这个问题,工作的答案由abhay提供.... – 2012-01-15 17:57:21

0

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

+0

PHP卷曲库为了检索您的谷歌页面查询www.google.com/search?q=query+to+search&tbm=isch,然后解析它与DOMDocument,然后使用MySQL连接器来调用MySQL语句。 – Uboonto 2012-01-14 14:46:38