Excel電商數(shù)據(jù)分析與應(yīng)用 課件 3.數(shù)據(jù)采集方法_第1頁
Excel電商數(shù)據(jù)分析與應(yīng)用 課件 3.數(shù)據(jù)采集方法_第2頁
Excel電商數(shù)據(jù)分析與應(yīng)用 課件 3.數(shù)據(jù)采集方法_第3頁
Excel電商數(shù)據(jù)分析與應(yīng)用 課件 3.數(shù)據(jù)采集方法_第4頁
Excel電商數(shù)據(jù)分析與應(yīng)用 課件 3.數(shù)據(jù)采集方法_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

數(shù)據(jù)采集方法3.1數(shù)據(jù)采集的基礎(chǔ)知識3.2數(shù)據(jù)采集1爬蟲權(quán)限申明23CONTENTSURL構(gòu)成原理網(wǎng)站的構(gòu)成4HTML請求與響應(yīng)5靜態(tài)數(shù)據(jù)采集6動態(tài)數(shù)據(jù)采集爬蟲權(quán)限申明PARTONE爬蟲權(quán)限申明在開展數(shù)據(jù)采集工作前需要了解數(shù)據(jù)采集的基礎(chǔ)知識,只有了解了數(shù)據(jù)采集的知識才能保證數(shù)據(jù)采集工作的正常開展。大多數(shù)網(wǎng)站都有一個(gè)名為robots.txt的文檔,用于判斷是否可以禁止訪客獲取數(shù)據(jù)。對于沒有設(shè)定robots.txt的網(wǎng)站,可以通過網(wǎng)絡(luò)爬蟲獲取沒有加密口令的數(shù)據(jù),也就是該網(wǎng)站所有頁面數(shù)據(jù)都可以爬取。以淘寶網(wǎng)為例,瀏覽器訪問/robots.txt,淘寶網(wǎng)允許了百度蜘蛛爬取其網(wǎng)站目錄,而對于沒有指定的用戶,則是全部禁止爬取,代碼如下。User-Agent:BaiduspiderDisallow:/URL構(gòu)成原理PARTTWOURL構(gòu)成原理統(tǒng)一資源定位符(UniformResourceLocator,URL),是用于完整地描述Internet網(wǎng)頁和其他資源地址的一種標(biāo)識方法。互聯(lián)網(wǎng)上每個(gè)文件都有其對應(yīng)的唯一URL?;靖袷饺缦?。scheme://host[:port#]/path/…/[?query-string][#anchor]其中scheme:協(xié)議(如http,https,ftp);host:服務(wù)器的IP地址或者域名;port#:服務(wù)器的端口(如果是走協(xié)議默認(rèn)端口,缺省端口80);path:訪問資源的路徑;query-string:參數(shù),發(fā)送給http服務(wù)器的數(shù)據(jù);anchor:錨(跳轉(zhuǎn)到網(wǎng)頁的指定錨點(diǎn)位置)。Protocol(協(xié)議)指定使用的傳輸協(xié)議,數(shù)據(jù)采集中最常遇到的是HTTP/HTTPS協(xié)議。Hostname(主機(jī)名)是指存放資源的服務(wù)器的域名系統(tǒng)(DNS)主機(jī)名或IP地址。Port(端口號)各種傳輸協(xié)議都有默認(rèn)的端口號,如http協(xié)議的默認(rèn)端口為80。如果輸入時(shí)省略,則使用默認(rèn)端口號。Path(路徑)由零或多個(gè)“/”符號隔開的字符串,一般用來表示主機(jī)上的一個(gè)目錄或文件地址。Parameters(參數(shù))這是用于指定特殊參數(shù)的可選項(xiàng)。Query(查詢)可選,用于給動態(tài)網(wǎng)頁傳遞參數(shù),可有多個(gè)參數(shù),用“&”符號隔開,每個(gè)參數(shù)的名和值用“=”符號隔開。Fragment(信息片斷)用于指定網(wǎng)絡(luò)資源中的片斷。例如一個(gè)網(wǎng)頁中有多個(gè)名詞解釋,可使用fragment直接定位到某一名詞解釋。例:網(wǎng)站的構(gòu)成PARTTHREEHTML網(wǎng)頁由3個(gè)部分組成,分別是HTML(超文本標(biāo)記語言)、CSS(層疊樣式表)和JavaScript(活動腳本語言)。用人體來比喻的話,HTML是人的骨架,并且定義了人的嘴巴、眼睛、耳朵等器官要長在哪里。CSS是人的外觀細(xì)節(jié),如嘴巴長什么樣子,眼睛是雙眼皮還是單眼皮,是大眼睛還是小眼睛,皮膚是黑色的還是白色的等特征。JavaScript表示人的技能,例如跳舞、唱歌或者演奏樂器。(HTML,HyperTextMarkupLanguage)超文本標(biāo)記語言是一種用于創(chuàng)建可從一個(gè)平臺移植到另一平臺的超文本文檔的標(biāo)記語言,常用于創(chuàng)建Web頁面。HTML文件是帶有格式標(biāo)識符和超文本鏈接的內(nèi)嵌代碼的ASCII文本文件——HTML結(jié)構(gòu)。HTML文本是由HTML命令組成的描述性文本,HTML命令可以說明文字、圖形、動畫、聲音、表格、鏈接等。HTML網(wǎng)頁結(jié)構(gòu)包括頭部(head)、主體(body)兩大部分。頭部描述瀏覽器所需的信息,主體包含所要說明的具體內(nèi)容。HTML是制作網(wǎng)頁的基礎(chǔ),在網(wǎng)絡(luò)營銷中介紹的靜態(tài)網(wǎng)頁,就是以HTML為基礎(chǔ)制作的網(wǎng)頁,早期的網(wǎng)頁都是直接用HTML代碼編寫的,不過現(xiàn)在有很多智能化的網(wǎng)頁制作軟件(常用的如FrontPage,Dreamweaver等)通常不需要人工寫代碼,而是由這些軟件自動生成代碼。盡管不需要自己寫代碼,但了解HTML代碼仍然非常重要,了解認(rèn)識HTML是學(xué)習(xí)網(wǎng)絡(luò)爬蟲的基礎(chǔ)知識。HTML

HTML是整個(gè)網(wǎng)頁的結(jié)構(gòu),相當(dāng)于整個(gè)網(wǎng)站的框架。HTML的標(biāo)簽都是成對出現(xiàn)的,常見的標(biāo)簽如表1。常見的HTML標(biāo)簽<html>...</html>表示標(biāo)記中間的元素是網(wǎng)頁<body>...</body>表示用戶可見的內(nèi)容<div>...</div>表示框架<p>...</p>表示段落<li>...</li>表示列表<img>...</img>表示圖片<h1>...</h1>表示標(biāo)題<a-href=””>...</a>表示超鏈接表1CSS(CSS,CascadingStyleSheets)層疊樣式表是用于表現(xiàn)HTML等文件樣式的一種計(jì)算機(jī)語言。CSS不僅可以靜態(tài)地修飾網(wǎng)頁,還可以和各種腳本語言一起動態(tài)地對網(wǎng)頁各元素進(jìn)行控制。CSS是控制樣式結(jié)構(gòu)的語言,主要用于控制網(wǎng)頁結(jié)構(gòu)和信息表現(xiàn)。CSS代碼可以直接寫在HTML網(wǎng)頁代碼中或者單獨(dú)寫在CSS文件中。無論哪一種方式,樣式單都包含將樣式應(yīng)用到指定類型的元素的規(guī)則。樣式規(guī)則由一個(gè)或多個(gè)樣式屬性及其值組成,外部使用時(shí),擴(kuò)展名為.css的文檔放置樣式單規(guī)則,只要引用.css文檔即可。樣式規(guī)則可以用來控制網(wǎng)頁中的元素,如文本段落以及鏈接的格式化指令。內(nèi)部樣式單可以直接放在網(wǎng)頁中,外部樣式單保存在一個(gè)或多個(gè)獨(dú)立的文檔中,網(wǎng)頁只要通過一個(gè)特殊標(biāo)簽就可以引入外部樣式單。CSS中的“層疊”表示樣式單規(guī)則應(yīng)用于HTML文檔元素的方式。CSS樣式單中的樣式形成一個(gè)層次結(jié)構(gòu),更具體的樣式覆蓋通用樣式。樣式規(guī)則的優(yōu)先級由CSS根據(jù)這個(gè)層次結(jié)構(gòu)決定,從而實(shí)現(xiàn)級聯(lián)效果。JavaScriptJavaScript是一種具有面向?qū)ο竽芰Φ?、解釋型的程序設(shè)計(jì)語言。更具體一點(diǎn),它是基于對象和事件驅(qū)動并具有相對安全性的消費(fèi)者端腳本語言。因?yàn)樗恍枰谡Z言環(huán)境下運(yùn)行,只需要有支持它的瀏覽器即可。它主要用于驗(yàn)證發(fā)往服務(wù)器端的數(shù)據(jù)、增加Web互動、加強(qiáng)用戶體驗(yàn)度等。

交互的內(nèi)容和各種特效都在JavaScript中,JavaScript描述了網(wǎng)站中的各種功能。HTML請求與響應(yīng)PARTFOURHTML請求與響應(yīng)HTML的工作機(jī)制是當(dāng)用戶在瀏覽器的地址欄中輸入一個(gè)網(wǎng)址并按【Enter】鍵之后,瀏覽器會向HTTP服務(wù)器發(fā)送HTTP請求。例如,在瀏覽器訪問時(shí),瀏覽器發(fā)送一個(gè)Request請求獲取/的HTML文件,通過服務(wù)器把Response文件對象發(fā)送回給瀏覽器。瀏覽器分析Response中的HTML,發(fā)現(xiàn)其中引用了很多文件,比如Images文件、CSS文件、JavaScript文件。瀏覽器會自動再次發(fā)送Request去獲取Images文件、CSS文件或者JavaScript文件。當(dāng)所有的文件都下載成功后,網(wǎng)頁會根據(jù)HTML語法結(jié)構(gòu),完整地顯示出來。例如,打開,按下【F12】鍵進(jìn)入開發(fā)者模式,單擊【Network】(網(wǎng)絡(luò))選項(xiàng),如圖2所示。圖2HTML請求與響應(yīng)刷新頁面(可按【F5】鍵),可獲取許多文件,這個(gè)過程也稱為抓包,如圖3所示。常見的HTML請求方法有:GET、POST。兩種方法的權(quán)限不同:GET可查看數(shù)據(jù);POST除了有查看權(quán)限,還有修改、刪除、增加的權(quán)限,因此許多黑客會利用POST的方法對服務(wù)器數(shù)據(jù)進(jìn)行篡改。圖3靜態(tài)數(shù)據(jù)采集PARTFIVE靜態(tài)數(shù)據(jù)采集靜態(tài)數(shù)據(jù)是指采集的目標(biāo)數(shù)據(jù)在網(wǎng)頁源碼中,而且是一次性加載在網(wǎng)頁中。例:采集休斯敦火箭隊(duì)球員最新賽季的歷史數(shù)據(jù)。球員表現(xiàn)數(shù)據(jù)如圖4所示。圖4靜態(tài)數(shù)據(jù)采集解:如圖3-4所示,在Excel的【數(shù)據(jù)】選項(xiàng)卡中,單擊【自網(wǎng)站】選項(xiàng),獲取網(wǎng)站的數(shù)據(jù)。如圖3-5所示,在彈出的【從Web】對話框中,鍵入網(wǎng)址。圖5圖6靜態(tài)數(shù)據(jù)采集如圖7所示,在【導(dǎo)航器】對話框中通過表視圖可以觀察到“Table0”是目標(biāo)數(shù)據(jù),單擊導(dǎo)航器中的【Table0】表,再單擊【編輯】按鈕進(jìn)入PowerQuery編輯器。圖7靜態(tài)數(shù)據(jù)采集如圖8所示,進(jìn)入PowerQuery編輯器后,發(fā)現(xiàn)一列空列,單擊鼠標(biāo)右鍵,在彈出的快捷菜單中單擊【刪除】選項(xiàng),將該列刪除。如圖9所示,篩選球員數(shù)據(jù),將“總計(jì)”“全隊(duì)數(shù)據(jù)”和“對手?jǐn)?shù)據(jù)”等無用的數(shù)據(jù)過濾掉。圖8圖9靜態(tài)數(shù)據(jù)采集如圖10所示,在PowerQuery編輯器【開始】選項(xiàng)卡中單擊【關(guān)閉并上載】選項(xiàng),將數(shù)據(jù)導(dǎo)入Excel中。加載在表格中的數(shù)據(jù),如圖11所示。圖10圖11靜態(tài)數(shù)據(jù)采集例:批量采集球隊(duì)最新賽季的歷史數(shù)據(jù),如表2所示球隊(duì)名稱縮寫馬刺SAS灰熊MEM火箭HOU小牛DAL黃蜂NOH表2解:將數(shù)據(jù)填入Excel工作表,如圖12所示,在【數(shù)據(jù)】選項(xiàng)卡中單擊【自表格/區(qū)域】選項(xiàng),將數(shù)據(jù)導(dǎo)入PowerQuery編輯器。如圖13所示,由于數(shù)據(jù)不是表,因此會彈出“創(chuàng)建表”對話框,在對話框中勾選【表包含標(biāo)題】。圖12圖13靜態(tài)數(shù)據(jù)采集如圖14所示,將數(shù)據(jù)導(dǎo)入PowerQuery編輯器后,先創(chuàng)建URL,在【添加列】選項(xiàng)卡中單擊【自定義列】選項(xiàng)。圖14圖15如圖15所示,在【自定義列】界面的【自定義列公式】文本框中鍵入“/team/“&[縮寫]&”.html”,將URL的幾個(gè)部分合并在一起。靜態(tài)數(shù)據(jù)采集創(chuàng)建好URL后再次添加自定義列,采集URL數(shù)據(jù),如圖16所示,在【添加列】選項(xiàng)卡中單擊【自定義列】選項(xiàng)。如圖17所示,在彈出的“自定義列”設(shè)置界面中,在自定義列公式文本框中,鍵入“Web.Page(Web.Contents([URL])){0}[Data]”。圖16圖17M函數(shù)說明:Web.Page是以網(wǎng)頁的方式加載數(shù)據(jù)。Web.Contents是將網(wǎng)頁以二進(jìn)制文件的格式下載。{0}[Data]是打開網(wǎng)頁中的第一張表格,也就是上例的“Table0”。靜態(tài)數(shù)據(jù)采集如圖18所示,確定自定義列后,如果是首次連接該域名會提示數(shù)據(jù)隱私設(shè)置,勾選【忽略此文件……】,單擊【保存】按鈕即可采集到數(shù)據(jù)。如圖19所示,展開Table,空列可以直接取消勾選,并且取消勾選【使用原始列名作為前綴】。圖18圖19靜態(tài)數(shù)據(jù)采集如圖20所示,展開數(shù)據(jù)后,取消勾選“總計(jì)”“全隊(duì)數(shù)據(jù)”“對手?jǐn)?shù)據(jù)”。如圖21所示,按住【Ctrl】鍵,將不用的列選中,單擊鼠標(biāo)右鍵,在彈出的快捷菜單中單擊【刪除列】選項(xiàng)。圖20圖21靜態(tài)數(shù)據(jù)采集如圖22所示,在PowerQuery編輯器【開始】選項(xiàng)卡中單擊【關(guān)閉并上載】選項(xiàng)。加載在表格的數(shù)據(jù),如圖23所示。圖22圖23動態(tài)數(shù)據(jù)采集PARTSIX動態(tài)數(shù)據(jù)采集表3靜態(tài)數(shù)據(jù)是指采集目標(biāo)數(shù)據(jù)在JS或XHR中,在網(wǎng)頁中有特定操作才會向服務(wù)器請求加載。例:現(xiàn)在需要批量采集馬刺和火箭兩只球隊(duì)在2017年和2018年兩年的球員表現(xiàn)數(shù)據(jù),以便于對比兩只球隊(duì)的球員表現(xiàn)。解:如表3所示,先根據(jù)球隊(duì)名稱、縮寫和年份創(chuàng)建球隊(duì)信息表。球隊(duì)名稱縮寫年份馬刺SAS2017馬刺SAS2018球隊(duì)信息表球隊(duì)名稱縮寫年份火箭HOU2017火箭HOU2018圖22如圖22所示,在瀏覽器的開發(fā)者模式下,進(jìn)入NetWork(網(wǎng)絡(luò))界面,選擇不同年份賽季,此時(shí)右側(cè)的NetWork窗口的右側(cè)會新增文件鏈接,單擊該新增文件,在Preview窗口可查看文件內(nèi)容。如圖23所示,單擊【Headers】選項(xiàng)卡,從“Headers”窗口可以看到請求鏈接RequestURL:/team/stat_box_team.php?team=HOU&season=2017&col=pts&order=1&isseason=1。圖23動態(tài)數(shù)據(jù)采集圖24圖25數(shù)據(jù)加載好后,就可以將需要采集的球隊(duì)和年份數(shù)據(jù)作為參數(shù)導(dǎo)入采集過程。如圖24所示,將表3中的數(shù)據(jù)填入Excel工作表,在【數(shù)據(jù)】選項(xiàng)卡中單擊【自表格/區(qū)域】選項(xiàng),將數(shù)據(jù)導(dǎo)入PowerQuery編輯器。如圖25所示,由于數(shù)據(jù)不是表格形式,會彈出“創(chuàng)建表”對話框,在對話框中勾選【表包含標(biāo)題】選項(xiàng)。動態(tài)數(shù)據(jù)采集圖26圖27如圖26所示,進(jìn)入PowerQuery編輯器后,先將年份的格式設(shè)置為文本,便于后續(xù)作為參數(shù)傳入U(xiǎn)RL中。創(chuàng)建目標(biāo)URL,如圖27所示,在【添加列】選項(xiàng)卡中單擊【自定義列】選項(xiàng)。動態(tài)數(shù)據(jù)采集圖28圖29如圖28所示,鍵入“="/team/stat_box_team.php?team="&[縮寫]&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論