2009-10-30 113 views
0

我有一個在java中使用bing圖片搜索來搜索圖片的小應用程序。我面臨的問題是,它只獲得前20張圖像。可能是因爲當我們在bing.com上搜索時,它首先填充了20個圖像,然後是它的無限滾動功能。Java Bing圖片搜索

有什麼方法可以使用bing搜索超過20張圖片嗎?

乾杯:)

回答

0

我猜這是因爲該網站使用了Ajax,你把它填充「無限」滾動列表。

你可能發送一個http請求並獲得最初的頁面(在我的瀏覽器上順便說一句,我有6張圖片在x4下,即24不是20;考慮一下,也許我的客戶也只有20,最後得到了最後一頁4 w/ajax ...),你需要通過ajax請求來做分頁。

一眼就可以看出,頁面的xhtml和關聯的javascript非常密集並且有些模糊,需要一段時間才能獲得導向...分析此頁面的另一種方法是使用數據包嗅探器(例如wireshark)並捕獲您向下滾動時發生的請求。

本質上,這可能會暴露某種形式的ajax請求,然後您可以使用java輕鬆地進行模擬。通常,ajax響應很容易解析它的任何性質(xml,jason,gzip ...)。

如果ajax響應中的返回數據是加密的,例如多個圖像捆綁在某種信封中,那麼您需要發現這種格式,這種計劃可能出現的障礙就是這種情況。

根據當前的實際任務,您可以嘗試替代方法,如GreaseMonkey(在Firefox上)或類似工具中的自動化。

Bing API是什麼?
請注意,所有上述方法類似於屏幕抓取,因此即使Bing應用程序中的微小變化也非常敏感,並且根據有效的使用情況和上下文,這可能會將項目置於合法的灰色區域中。更好的方法可能是註冊並獲取MS/Bing的正確應用程序ID並使用Bing API

+0

嗨, Thanx for reply。是的,我發送一個HTTP請求並從該頁面讀取。你能請建議一些分頁嗎? – Zinx 2009-10-30 04:45:30

+0

@Zinx,看我的編輯。我建議一些方法。我現在很忙,所以我會讓你「從那裏拿走」。這個從網上自動瀏覽和收集內容的問題是非常常見的,與新的網站結構(如ajax等)相關的新問題可能開始在開發人員社區中得到很好的理解。看看,你可能會發現現成的庫或工具來解決這個問題。請勿將注意力集中在此工具/信息搜索的「必應」上,因爲此關鍵字使其過於冗長。 – mjv 2009-10-30 05:31:54

+0

什麼是SO。沒有得到你指的是什麼? – akjain 2009-10-30 09:24:42

0

您正在模擬瀏覽器? Bing引擎不是有程序的入口點 - Web服務等等 - 這會讓你的任務變得更容易。


編輯:SDK似乎是在這裏:http://msdn.microsoft.com/en-us/library/cc980922.aspx

+0

@Thor,你可能是指Bing API(你提供的SDK鏈接是Bing _MAP_服務),但是是的!,你有正確的想法! (儘管我對「SO代表賽」的支持相對較少,但有時我會進入遊戲,並直接回應OP的追求) – mjv 2009-10-30 13:25:06

0

只是想直接回答張貼的問題: 兵使用Ajax(當然)對於無限滾動。每個「tick」都基於一個簡單的ajax get請求,該請求會產生新的圖像。

例如,此url根據查詢「max payne」以「htmlraw」格式返回30個結果(121-151)。 http://www.bing.com/images/async?q=max+payne&format=htmlraw&first=121

編輯: 它的工作原理與原來的URL也只需添加&第一=號碼查詢字符串。例如: www.bing.com/images/search?Q =佩恩&去= &形式= QBLH &範圍=圖像& FILT =所有&第一= 10

我建立我自己的批量圖像採集器(用於「學習計劃」爲自己),我發現,它是這樣分頁的。谷歌和必應很容易,雅虎和Altavista(多餘的,因爲他們的結果來自雅虎)更成問題 - 他們不直接鏈接到原始圖像。

玩得開心! :)