記錄百度圖片抓取過程

最近碰到個需求,需要抓取百度圖片,要求得到縮略圖的URL和原圖的URL

1.首先用urllib2連圖片毛都沒抓到,,分析了一下百度圖片的結構,發現圖片的JSON數據是通過ajax加載的.urllib2淚流滿面

2.前段時間用過htmlunit,這玩意是用JAVA做的,先使用htmlunit解析動態加載的網頁,再用thrift進行python和java的連接,可以得到加載後的JSON,這個可以入選了

3.最近又找到了PhantomJS,此物是一個無界面的webkit引擎,使用JSAPI的,試用了一下,感覺比htmlunit更好用,主頁是:http://phantomjs.org/index.html,使用PhantomJS可以得到執行過JS的網頁,並且可以直接得到window的JS變量,返回JSON數據,python可以使用subprocess來進行系統命令行的調用,並返回命令行的結果,這個也可以入選了,另PhantomJS還可以做爲一個webserver,嘗試了一下,發現把大部分邏輯放到js寫着太彆扭,中止嘗試

4.在上面兩種方案中發現想得到更多圖片時模擬翻頁實現太麻煩,嘗試着從AJAX上入手,在chrome上使用chrome://net-internals/對百度圖片進行了抓包,直接抓到了JSON數據的ajax,所以2,3被放棄了,世界也清靜了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章