【问题标题】:Save image url from Google search to MySQL将 Google 搜索中的图片 url 保存到 MySQL
【发布时间】:2012-01-14 13:35:43
【问题描述】:

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

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

【问题讨论】:

  • 感谢回复,我也在尝试图像 API,但目前看来我无法实现我的目的
  • 您获得了图片链接但由于无效字符而无法将其添加到数据库中的真正问题是什么,或者您在获取图片网址时遇到问题? jsfiddle.net/cXwxB
  • 我真正的问题是获取图像 url,然后将它们保存到数据库中,至少我想要可以获取特定单词搜索的图像 url 的代码..非常感谢您的帮助

标签: php mysql google-image-search


【解决方案1】:

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

这个想法是你研究谷歌返回的页面的 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>

在每个&lt;li&gt; 标记内都有其他标记,其中之一是&lt;a&gt;。这个标签似乎有 2 个属性——“imgrefurl”和“imgurl”——这可能会给你你需要的图像。您需要探索这两个属性中的哪一个。

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

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

我希望以上内容有意义

【讨论】:

【解决方案2】:

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

【讨论】:

  • php curl 库为了检索你的谷歌页面查询 www.google.com/search?q=query+to+search&tbm=isch,然后用 DOMDocument 解析它,然后使用 mysql 连接器调用 MySQL声明。
猜你喜欢
  • 1970-01-01
  • 2013-11-07
  • 1970-01-01
  • 1970-01-01
  • 2014-11-22
  • 1970-01-01
  • 2012-03-08
  • 1970-01-01
  • 2011-09-26
相关资源
最近更新 更多