2012-01-14 55 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