0

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

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

4

2 回答 2

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>

在每个<li>标签中都有其他标签,其中之一是<a>. 这个标签似乎有 2 个属性——“imgrefurl”和“imgurl”——这可能会给你你需要的图像。您需要这 2 个属性中的哪一个供您探索。

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

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

我希望以上是有道理的

于 2012-01-14T18:37:42.317 回答
0

您可以使用PHP curl 库和 PHP 类DOMDocument来实现这一点,然后使用Mysql 或 Mysqli库连接到数据库。MySQL 帮助可以在这里找到:MySQL Doc

于 2012-01-14T14:39:44.987 回答