数据采集及采集工具八爪鱼的使用
數(shù)據(jù)采集及采集工具八爪魚(yú)的使用
一個(gè)數(shù)據(jù)的走勢(shì)是由多個(gè)維度影響的,因此我們需要通過(guò)多源的數(shù)據(jù)采集,盡可能收集到更多的數(shù)據(jù)維度,公司保證數(shù)據(jù)質(zhì)量,才能得到高質(zhì)量的數(shù)據(jù)挖掘結(jié)果。
數(shù)據(jù)源分類:
開(kāi)放數(shù)據(jù)源:
- 可以從兩個(gè)維度來(lái)考慮,一個(gè)是單位的維度,比如政府、企業(yè)、高校;一個(gè)就是行業(yè)維度,比如交通、金融、能源等領(lǐng)域。
爬蟲(chóng)獲取:
-
Python爬蟲(chóng)三個(gè)過(guò)程:
- 使用requests爬取內(nèi)容,可以用其來(lái)抓取網(wǎng)頁(yè)信息。
- 使用xpath解析內(nèi)容。XPath是一種用來(lái)確定 XML 文檔中某部分位置的語(yǔ)言,在開(kāi)發(fā)中經(jīng)常用來(lái)當(dāng)作小型查詢語(yǔ)言。XPath可以通過(guò)元素和屬性進(jìn)行位置索引。
- 使用 Pandas 保存數(shù)據(jù)。pandas可以保存爬取的數(shù)據(jù)寫(xiě)入到xls或MySQL等數(shù)據(jù)庫(kù)中。
-
常用網(wǎng)頁(yè)信息抓取工具:
-
[火車(chē)采集器]http://www.locoy.com/
-
[八爪魚(yú)]https://www.bazhuayu.com/
-
[集搜客]http://www.gooseeker.com/index.html
日志采集:
- 日志采集最大的作用,就是通過(guò)分析用戶訪問(wèn)情況,提升系統(tǒng)的性能,從而提高系統(tǒng)承載量。及時(shí)發(fā)現(xiàn)系統(tǒng)承載瓶頸,也可以方便技術(shù)人員基于用戶實(shí)際的訪問(wèn)情況進(jìn)行優(yōu)化。
- 日志采集可分為兩種形式:
- 通過(guò)web服務(wù)器采集
- 自定義采集用戶行為
- 埋點(diǎn)是日志采集的關(guān)鍵步驟,其是在有需要的位置采集相應(yīng)的信息進(jìn)行上報(bào)。
- 在需要統(tǒng)計(jì)數(shù)據(jù)的地方植入統(tǒng)計(jì)代碼。
- 有助于了解用戶的操作數(shù)據(jù),適用于運(yùn)維監(jiān)控、安全審計(jì)、業(yè)務(wù)數(shù)據(jù)分析等場(chǎng)景。
- 一般web服務(wù)器自帶日志功能,也可以使用flume從不同服務(wù)器集群中采集、匯總和傳輸大容量的日志數(shù)據(jù)。
采集用具八爪魚(yú)的使用:
- 八爪魚(yú)采集分為三步:
-
流程步驟可分為基本步驟和高級(jí)步驟
-
基本步驟分別是打開(kāi)網(wǎng)頁(yè)、點(diǎn)擊元素、循環(huán)翻頁(yè)、提取數(shù)據(jù)
- 打開(kāi)網(wǎng)頁(yè):所有的采集默認(rèn)第一項(xiàng)都是打開(kāi)網(wǎng)頁(yè),在新建任務(wù)并輸入網(wǎng)址后,八爪魚(yú)會(huì)自動(dòng)建立一個(gè)打開(kāi)網(wǎng)頁(yè)流程。
- 點(diǎn)擊元素:這里元素的定義比較廣泛,它可以是某個(gè)按鈕,或者某個(gè)鏈接,也或者是某個(gè)圖片或文字。使用這個(gè)步驟是你在搜索或者提交某個(gè)請(qǐng)求。當(dāng)你點(diǎn)擊元素后,八爪魚(yú)會(huì)提示你想要達(dá)到的目的:點(diǎn)擊該按鈕、采集該元素文本、還是鼠標(biāo)移到該鏈接上。然后再選擇“點(diǎn)擊該按鈕”進(jìn)行確認(rèn)即可。如果我們點(diǎn)擊某個(gè)元素的目的是循環(huán)翻頁(yè),或者提取數(shù)據(jù),那么在點(diǎn)擊之后,八爪魚(yú)會(huì)確認(rèn)你的目的,你只要點(diǎn)擊相關(guān)的按鈕即可。
- 循環(huán)翻頁(yè):很多數(shù)據(jù)都存在翻頁(yè)的情況,通常你需要找到翻頁(yè)的位置,比如網(wǎng)頁(yè)底部的“下一頁(yè)”按鈕,點(diǎn)擊它,會(huì)提示你“循環(huán)點(diǎn)擊下一頁(yè)”、“采集該鏈接文本”還是“點(diǎn)擊該鏈接”。你需要確認(rèn)這里是進(jìn)行的“循環(huán)點(diǎn)擊下一頁(yè)”。
- 提取數(shù)據(jù):在網(wǎng)頁(yè)上選擇你想要提取的頁(yè)面范圍,鼠標(biāo)移動(dòng)到頁(yè)面上會(huì)呈現(xiàn)藍(lán)色的陰影面積,它表明了你想提取的數(shù)據(jù)范圍。然后點(diǎn)擊鼠標(biāo)后,在右側(cè)選擇“采集數(shù)據(jù)”即可。
-
高級(jí)步驟包括輸入文字、驗(yàn)證碼識(shí)別、下拉選項(xiàng)、判斷條件、移動(dòng)鼠標(biāo)到元素上、結(jié)束循環(huán)、結(jié)束流程
Python爬蟲(chóng)流程:打開(kāi)網(wǎng)頁(yè)、提取數(shù)據(jù)和保存數(shù)據(jù)。
-
打開(kāi)網(wǎng)頁(yè):可以使用Requests 訪問(wèn)頁(yè)面,得到服務(wù)器返回?cái)?shù)據(jù),包括HTML及json。
-
提取數(shù)據(jù):對(duì)于HTML,可使用xpath進(jìn)行元素定位提取數(shù)據(jù)。
? 對(duì)于json,可使用json進(jìn)行解析。
-
保存數(shù)據(jù):可使用pandas保存數(shù)據(jù)并導(dǎo)出csv文件。
Requests訪問(wèn)頁(yè)面:
-
Requests是Python HTTP的客戶端庫(kù),有兩種訪問(wèn)方式:Get和Post。Get把參數(shù)包含在url中,Post通過(guò)request body來(lái)傳遞參數(shù)。
-
Get訪問(wèn)
r = requests.get('http://www.douban.com')r為get請(qǐng)求后的訪問(wèn)結(jié)果,通過(guò)r.text或r.content可獲取HTML正文。
-
Post表單傳遞
r = requests.post('http://xxx.com', data = {'key':'value'})
xpath定位:
-
其可通過(guò)元素和屬性來(lái)定位位置。
-
常用路徑表達(dá)方式:
表達(dá)式含義 node 選node節(jié)點(diǎn)的所有子節(jié)點(diǎn) / 從根節(jié)點(diǎn)選取 // 選取所有的當(dāng)前節(jié)點(diǎn),不考慮位置 . 當(dāng)前節(jié)點(diǎn) … 父節(jié)點(diǎn) @ 屬性選擇 | 或,兩個(gè)節(jié)點(diǎn)的合計(jì) text() 當(dāng)前路徑下的文本內(nèi)容 -
定位HTML所有列表項(xiàng)目:
from lxml import etree html = etree.HTML(html) result = html.xpath('//li')
json對(duì)象:
利用JSON庫(kù)可以完成Python對(duì)象與json對(duì)象之間的轉(zhuǎn)換。
json.dumps() 將Python對(duì)象轉(zhuǎn)換成json對(duì)象
json.loads() 將json對(duì)象轉(zhuǎn)換成Python對(duì)象
總結(jié)
以上是生活随笔為你收集整理的数据采集及采集工具八爪鱼的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: boot界面上下键调节键不能动_为什么电
- 下一篇: Oralce函数