2020-09-26 分類: 網(wǎng)站建設
文/諸葛ioCEO
關于爬蟲內容的分享,我會分成兩篇,六個部分來分享,分別是:
本文先聊聊前三個部分。
一、我們的目的是什么
一般來講對我們而言需要抓取的是某個網(wǎng)站或者某個應用的內容,提取有用的價值,內容一般分為兩部分,非結構化的文本,或者結構化的文本。
關于非結構化的數(shù)據(jù)
1.1 HTML文本(包含java代碼)
HTML文本基本上是傳統(tǒng)爬蟲過程中最常見的,也就是大多數(shù)時候會遇到的情況,例如抓取一個網(wǎng)頁,得到的是HTML,然后需要解析一些常見的元素,提取一些關鍵的信息。HTML其實理應屬于結構化的文本組織,但是又因為一般我們需要的關鍵信息并非直接可以得到,需要進行對HTML的解析查找,甚至一些字符串操作才能得到,所以還是歸類于非結構化的數(shù)據(jù)處理中。
常見解析方式如下:
CSS選擇器
現(xiàn)在的網(wǎng)頁樣式比較多,所以一般的網(wǎng)頁都會有一些CSS的定位,例如class,id等等,或者我們根據(jù)常見的節(jié)點路徑進行定位,例如騰訊首頁的財經(jīng)部分:
這里id就為finance,我們用css選擇器,就是"#finance"就得到了財經(jīng)這一塊區(qū)域的html,同理,可以根據(jù)特定的css選擇器可以獲取其他的內容。
XPATH
XPATH是一種頁面元素的路徑選擇方法,利用chrome可以快速得到,如:
copy XPATH 就能得到——//*[@id="finance"]
正則表達式
正則表達式,用標準正則解析,一般會把HTML當做普通文本,用指定格式匹配當相關文本,適合小片段文本,或者某一串字符,或者HTML包含java的代碼,無法用CSS選擇器或者XPATH。
字符串分隔
同正則表達式,更為偷懶的方法,不建議使用。
1.2 一段文本
例如一篇文章,或者一句話,我們的初衷是提取有效信息,所以如果是滯后處理,可以直接存儲,如果是需要實時提取有用信息,常見的處理方式如下:
分詞
根據(jù)抓取的網(wǎng)站類型,使用不同詞庫,進行基本的分詞,然后變成詞頻統(tǒng)計,類似于向量的表示,詞為方向,詞頻為長度。
NLP
自然語言處理,進行語義分析,用結果表示,例如正負面等。
關于結構化的數(shù)據(jù)結構化的數(shù)據(jù)是最好處理,一般都是類似JSON格式的字符串,直接解析JSON數(shù)據(jù)就可以了,提取JSON的關鍵字段即可
二、內容從何而來
過去我們常需要獲取的內容主要來源于網(wǎng)頁,一般來講,我們決定進行抓取的時候,都是網(wǎng)頁上可看到的內容,但是隨著這幾年移動互聯(lián)網(wǎng)的發(fā)展,我們也發(fā)現(xiàn)越來越多的內容會來源于移動app,所以爬蟲就不止局限于一定要抓取解析網(wǎng)頁,還有就是模擬移動app的網(wǎng)絡請求進行抓取,所以這一部分我會分兩部分進行說明。
1 網(wǎng)頁內容
網(wǎng)頁內容一般就是指我們最終在網(wǎng)頁上看到的內容,但是這個過程其實并不是網(wǎng)頁的代碼里面直接包含內容這么簡單,所以對于很多新人而言,會遇到很多問題,比如:
明明在頁面用Chrome或者Firefox進行審查元素時能看到某個HTML標簽下包含內容,但是抓取的時候為空。
很多內容一定要在頁面上點擊某個按鈕或者進行某個交互操作才能顯示出來。
所以對于很多新人的做法是用某個語言別人模擬瀏覽器操作的庫,其實就是調用本地瀏覽器或者是包含了一些執(zhí)行java的引擎來進行模擬操作抓取數(shù)據(jù),但是這種做法顯然對于想要大量抓取數(shù)據(jù)的情況下是效率非常低下,并且對于技術人員本身而言也相當于在用一個盒子,那么對于這些內容到底是怎么顯示在網(wǎng)頁上的呢?
當前文章:一看就明白的爬蟲入門講解:基礎理論篇(上篇
文章地址:http://www.rwnh.cn/news/86715.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設計、品牌網(wǎng)站制作、網(wǎng)站維護、App設計、虛擬主機、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容