当我们在Google图片搜索中输入一个单词时,会返回一个页面。此页包含许多具有缩略图视图的图片。我希望将这些图像的位置地址保存在我的数据库(MySQL)中。我需要在PHP编码这一点,我想保存前10个图像的网址。我正在设计一个动态页面,我将从数据库中挑选这些图像URL地址,并将这些显示在我的动态页面上。
我已经尝试了很多,问题是我的完整网址没有保存,因为它包含许多无效字符的MySQL。我搜索了许多网站,发现了不同的功能,但我仍然不清楚这一点:我在设计如何做这项工作的想法失败。谁能给我一些PHP代码或程序如何做到这一点?
发布于 2012-01-15 02:37:42
我建议你使用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>。这个标签似乎有两个属性-- "imgrefurl“和"imgurl”--可能会给出你需要的图片。你需要探索这两个属性中的哪一个。
或者,在<li>中有一个<img>标记,它有一个包含实际图像二进制文件的"src“属性。所以你也可以解析它。请注意,二进制文件是您在搜索页面上看到的图像,而不是实际的图像。
对于某些指向DOM的指针,这个方法可能很有用-- http://www.php.net/manual/en/domelement.getelementsbytagname.php和http://www.php.net/manual/en/domelement.hasattribute.php --用于读取所有<li>标记,然后使用"rg_li“类解析那些标记。
我希望上面的内容是有意义的
发布于 2012-01-14 22:39:45
您可以使用PHP curl libraries和PHP类DOMDocument来实现这一点,然后使用Mysql or Mysqli库连接到数据库。可以在以下位置找到MySQL帮助:MySQL Doc。
https://stackoverflow.com/questions/8862540
复制相似问题