当我们在Google图片搜索中输入单词时,会返回一个页面。此页面包含许多带缩略图视图的图片。我想在我的数据库(MySQL)中保存这些图像的位置URL。我需要在PHP中编写代码,我想保存前10个图像的URL。 我正在设计一个动态页面,我将从数据库中选择这些图像URL地址,并在我的动态页面上显示这些。
我已经尝试了很多,问题是我的完整URL没有保存,因为它包含许多MySQL的无效字符。我搜索了很多网站,发现了不同的功能,但我仍然不清楚这一点:我没有设计出如何做这项工作的想法。 有人可以给我一些PHP代码或程序如何完成它?
答案 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.php和http://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。