因爲別的項目組在作輿情的預言項目,我手頭正好沒有什麼項目,忽然心血來潮想研究一下爬蟲、分析的簡單原型。網上查查這方面的資料還真是多,眼睛都看花了。搜了搜對於我這種新手來講,想作一個簡單的爬蟲程序,因此HttpClient + jsoup是一個不錯的選擇。前者用來管理請求,後者用來解析頁面,主要是後者的select語法很像jquery,對於用js的我來講方便太多了。html
昨天和他們聊天的時候,他們選用了幾個著名的開源框架使用,聊着聊着就發現原來他們目前尚未辦法抓取動態的網頁,尤爲是幾個重要的數字,例如評論數,回帖數等等。大體瞭解了一下,例如TRS的爬蟲,對於js的調用,須要寫js腳本,可是分析量巨大,他們的技術人員告訴咱們,相似這樣的模板他們配的話,一天也就只能配2到3個,更不要說咱們這些半路出家的。正好以爲很有挑戰,因此昨天答應了他們看看能不能找到一個相對來講簡單的解決辦法,固然,先不考慮效率。jquery
舉一個簡單的例子,以下圖瀏覽器
「我有話說」後的1307就是後加載的,可是每每這些數字對於輿情分析來講仍是比較重要的。框架
大體瞭解了需求,就分析一下如何解決。一般,咱們的一次請求,獲得的迴應是包含js代碼和html元素的,因此對於jsoup這樣的html解析器在這裏就難以發揮優點,由於它所能拿到的html,1307尚未生成。這個時候就須要一個可運行js的平臺,將運行過js代碼的後的頁面,交由html解析,這樣才能正確得到結果。url
因爲我比較偷懶,寫腳本的方式一開始就被我拋棄了,由於分析一個頁面太痛苦了,代碼亂成一鍋粥,好多還採用壓縮的辦法,滿眼都是a(),b()的方法,看的太累了。因此我最優先想到的是,爲何我不能讓這個地址在某個瀏覽器中運行,而後將運行的結果交給html解析器去解析,那麼整個問題不就迎刃而解了嗎。這樣我暫時的解決方案就是在爬蟲服務端,開一個後臺的瀏覽器,或者是有瀏覽器內核的程序,將url地址交給它去請求,而後從瀏覽器中將頁面的元素取出,交給html解析器去解析,從而獲取本身想要的信息。htm
明天接着聊,先休息了。blog