1. 程式人生 > >輿情繫統站點採集之優雅的採集系統模板配置——薅資本主義大牛的羊毛

輿情繫統站點採集之優雅的採集系統模板配置——薅資本主義大牛的羊毛

國內大大小小專注輿情繫統開發的公司上百家,對應做輿情,如何結構化採集的資料是一件很重要的事情,如果不能很好的結構化web頁面的資料,後續對資料的情感分析,關鍵詞分析很難進行。一般的公司對web頁面進行格式化的時候,大多數是自動解析+模板配置進行;
自動解析:分為傻瓜式的解析與加入神經網路功能的智慧化解析兩種,前者是通過找出各大主流web內容頁面特徵,對web頁面節點進行遍歷,獲取一個所謂的標題,正文的最優解;而後者,通過機器學習進行,典型的就是各家搜尋公司,這裡我推薦大家瞭解下diffbot這家公司關於diffbot的報道,該公司站點為公司主頁
模板配置:什麼是模板,拿爬蟲框架 webmagic來說,爬蟲程式並不知道如何將下載下來的web html資料格式化,這時候我們就需要用到xpath,css路徑來告訴程式,頁面中那個節點是有用資料,需要取出來。目前通用的輿情公司做法是找專門的人去配置模板,並且為方便配置,專門研發對應的系統方便配置。
那今天我該講什麼?對,我講的就是薅資本主義的羊毛,我來手把手的教你作為一個輿情爬蟲開發者,如何薅diffbot公司的羊毛
先看看diffbot對web頁面格式化得展示:
這裡寫圖片描述

很高大上對吧,使用神經網路訓練出來的,雖然不能100%的將頁面內容格式化,但應付國內國外的新聞站點是100%沒問題得,當然,這個頁面是在通訊上是沒有加密的,大家可以放心使用。接著,我就開始展示我所做的工作了。
這裡寫圖片描述

這次使用的就是我開發的這幾個介面,對diffbot智慧解析出的資料的逆向。首先介紹第一個介面:
介面一:通過 starttxt,endtxt 來逆向出該內容的節點,如圖:
這裡寫圖片描述
這裡,我輸入了 “starttxt”: “新華社北京4月2日電”,”endtxt”: “2018年04月03日 01 版”,我們來看看這個頁面的內容這裡寫連結內容
大家可以看出,這篇文字開始內容為:新華社北京4月2日電,結束內容大概為:2018年04月03日 01 版。我們再看看我這個介面輸出內容:
這裡寫圖片描述


如圖,頁面中輸出了一個 path:#root:0|html:0|body:0|div:4|div:0|div:0 ,這個path路徑非xpath也非css路徑,而是自定義的一個html骨架路徑。然後對輸出進行驗證:
介面二:通過選擇的path,獲得對應節點下的text內容
這裡寫圖片描述

解析結果如下:
這裡寫圖片描述
因此,我們通過這兩個介面起到了一個取代人工配置模板的功能,可以通過程式,對新聞站點進行模板的生成,去薅diffbot的羊毛。畢竟,開發出一個類似於diffbot基於視覺效果解析web資料的人工智慧程式不是誰都能做的。
剩下的,就是完善其他的事情,比如釋出時間節點的獲取,採用上述方式是行不通的,因此,我專門開發了一個程式對時間節點進行抽取:

介面三:通過選擇的txt,獲得最優path解,適合提取釋出時間的路徑
這裡寫圖片描述
pubtimetxt只要是頁面中的釋出時間即可,格式寫成 類似於 2018年04月03日04:36輸入就可以匹配到對應的時間一致的節點,看輸出資料:
這裡寫圖片描述
驗證一下這個節點的內容:
這裡寫圖片描述
到這裡基本就可以完成對新聞之類的資料模板的完工了,標題,釋出時間,內容,搞定!再看看對有節點重複的資料的處理:
這裡寫圖片描述
可以看出有多個節點匹配,輸出的內容都是經過過濾,選擇了deep值最大的(deep指的是節點深度),因此,理論上講,你可以在輸出結果後,增加一個演算法,採納內容匹配度最高的一個節點作為最優解。
到這裡就完成了所有的介紹。那麼,從哪裡可以買到呢,那有需要的可以留言