HtmlUnit 網絡爬蟲 菜鳥的學習筆記(三)

            上一篇寫到,要是分析每個url,包括滾動條滾動的url和分頁的url就能夠構造出來url來訪問,從而抓取信息,可是這樣要是想把我關注的人的全部微博所有輸出的話,豈不是每一個關注的人的url都要去看和分析,這樣工做量就很大了html

            因此今天剛我就仔細分析了一下的url,發現其實變化量除了page和pagebar這兩個參數,還有其餘的參數須要關注: 該人的主頁id,domain和id,下面說明一下web

給一個分頁的url參考一下ajax

http://weibo.com/u/1645851277?pids=Pl_Official_MyProfileFeed__22&is_search=0&visible=0&is_tag=0&profile_ftype=1&page=" + (page++) + "&ajaxpagelet=1&ajaxpagelet_v6=1&__ref=/u/1645851277&_t=FM_144101367516634api

給一個滾動條的url參考一下dom

http://weibo.com/p/aj/v6/mblog/mbloglist?ajwvr=6&domain=100505&from=myfollow_all&pre_page=1&page=1&max_id=&end_id=3881954464220733&pagebar=0&filtered_min_id=&pl_name=Pl_Official_MyProfileFeed__22&id=1005051645851277&script_uri=/u/1645851277&feed_type=0&domain_op=100505&__rnd=1441013708418url

上面標紅的能夠看到,1645851277就是主頁的id,domain就是100505,id就是1005051645851277,其實就是domain+主頁id獲得的spa

這些參數要怎麼得到呢?debug

            首先是主頁id,這個其實在我關注的那個頁面能夠找到的,比較簡單,搜一下id,就看到了,而後用得到標籤的方式便可得到code

            得到以後就構造好了訪問這我的的微博主頁的url,而後就須要找domain和id了,用webClient.getPage進去以後,這裏debug能夠看到這樣的配置,嘿嘿,是否是很明顯
htm

            

            可是問題來了,如何得到這個$CONFIG參數,開始我也很納悶,這個可咋搞啊,放在CDATA塊中的,而後百度了不少htmlunit獲取CDATA的方法,沒有找到,很鬱悶,可是這個時候忽然發現,這個是放在<script>標籤裏的,也就是說這是腳本,我一下就想到htmlunit一個api

            HtmlPage.executeJavaScript("腳本")

            這個方法就是容許你直接去執行一些腳本語言,因此果斷用這個主頁的HtmlPage對象去執行了這個方法          

configMap = (Map<String, String>) page3.executeJavaScript("$CONFIG").getJavaScriptResult();

            這是個參數,因此直接取到,強轉爲Map,而後直接get出須要的屬性,搞定,修改以後的代碼就能夠本身根據查出來的各類id來把我關注的人的微博都能爬出來。

            最後歡迎各位大神繼續批評指正啊,小弟在這感謝了(●'◡'●)

相關文章
相關標籤/搜索