99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁CDA發(fā)布學(xué)術(shù)研究中的“加速器”--Python爬蟲
學(xué)術(shù)研究中的“加速器”--Python爬蟲
2019-08-28
收藏

對于科學(xué)研究:人類動力學(xué)研究,計(jì)量社會學(xué),復(fù)雜網(wǎng)絡(luò),數(shù)據(jù)挖掘,理論計(jì)量學(xué)、應(yīng)用計(jì)量學(xué)、或是各個(gè)論文中對數(shù)據(jù)整理都異常重要。

網(wǎng)絡(luò)爬蟲是收集相關(guān)數(shù)據(jù)的利器,它可以抓取某個(gè)網(wǎng)站或者某個(gè)應(yīng)用的內(nèi)容,提取有用的價(jià)值以及各種數(shù)據(jù)。也可以模擬用戶在瀏覽器或者App應(yīng)用上的操作,實(shí)現(xiàn)自動化的程序。

而因?yàn)?/span>Python的腳本特性,以及其不僅易于配置,而且對字符的處理也非常靈活,加上Python有豐富的網(wǎng)絡(luò)抓取模塊,所以網(wǎng)絡(luò)爬蟲經(jīng)常與Python聯(lián)系在一起。


“工欲善其事,必先利其器”,當(dāng)您的實(shí)證分析中有了一手的準(zhǔn)確數(shù)據(jù),就好像伐木人有了一把鋒利的斧子,那么您的實(shí)證效率會呈現(xiàn)幾何級的增長!這把利器就是Python爬蟲:

Python爬蟲學(xué)術(shù)應(yīng)用_3月北京現(xiàn)場班

時(shí)間:2019年3月22-25日 (四天)

地點(diǎn):北京市海淀區(qū)丹龍大廈附近

安排:上午9:00-12:00,下午1:30-4:30,答疑4:30-5:00

費(fèi)用:3600元 / 3000元(學(xué)生價(jià)僅限全日制本科生及碩士在讀);食宿自理

我要報(bào)名


講師介紹:

閻老師,長期從事數(shù)據(jù)分析的理論研究、教學(xué)和實(shí)踐工作。長期關(guān)注各類統(tǒng)計(jì)軟件的發(fā)展和國內(nèi)外各行業(yè)的應(yīng)用情況,一直保持著與統(tǒng)計(jì)應(yīng)用前沿的密切接觸,在數(shù)據(jù)挖掘應(yīng)用、市場研究應(yīng)用等領(lǐng)域經(jīng)驗(yàn)豐富。
擅長企業(yè)數(shù)據(jù)分析和企業(yè)診斷,參與多項(xiàng)國家級、省級課題的科研工作,曾任多家電商企業(yè)的運(yùn)營顧問和培訓(xùn)師,積累了大量實(shí)戰(zhàn)經(jīng)驗(yàn)。


課程導(dǎo)引:

在了解爬蟲的過程中,由于對這項(xiàng)技術(shù)缺乏系統(tǒng)了解,“小白”們難免會被紛繁生僻的知識點(diǎn)折騰地眼花繚亂、暈頭轉(zhuǎn)向。有的人打算先搞懂基本原理和工作流程,有的人計(jì)劃從軟件的基本語法入門,也有人打算弄懂了網(wǎng)頁文檔再來……在學(xué)習(xí)抓取網(wǎng)絡(luò)信息的道路上,許多人因?yàn)橹型镜暨M(jìn)陷阱最終無功而返。因此,掌握正確的方法的確非常重要。

這一門課的目的,就是希望能夠通過通俗易懂的講解令沒有編程基礎(chǔ)的研究人員通過學(xué)習(xí),能夠?qū)W會爬取主流網(wǎng)站的內(nèi)容并整理成為可為后續(xù)分析提供依據(jù)的數(shù)據(jù)資料在這門課結(jié)束之后,我們能夠爬取豆瓣的評論內(nèi)容、學(xué)術(shù)論文、淘寶的銷售數(shù)據(jù)、房價(jià)的變化趨勢,還能對股票市場進(jìn)行分析和預(yù)測。


課程大綱:

為了能夠完整地呈現(xiàn)Python數(shù)據(jù)采集的方法和過程,這門課將分為四大部分——

一、Python快速入門

在寫爬蟲之前,我們需要了解一些有關(guān)工具的基礎(chǔ)知識。所以,第一天的授課內(nèi)容是關(guān)于Python基礎(chǔ)的,是后續(xù)課程中讀懂并編寫爬蟲程序的鋪墊。其中包括了Python的數(shù)據(jù)結(jié)構(gòu)、變量類型、循環(huán)和控制語句、Numpy和Pandas包的基本功能。有基礎(chǔ)的老師可以跳過這一部分直接進(jìn)入第二部分。


第1章 認(rèn)識Python

1. Python的數(shù)據(jù)結(jié)構(gòu)與函數(shù)

2. Python的循環(huán)與控制流

3. Python的基本擴(kuò)展庫


二、初識爬蟲

在這一部分中,我們將正式接觸爬蟲,我們也將感受到每天都在使用的瀏覽器究竟藏著哪些細(xì)節(jié)。為了能夠得到清潔的數(shù)據(jù),我們不得不忽略網(wǎng)頁精致的外觀和編排,刻意繞開瀏覽器的幫助來分離和理解數(shù)據(jù)。頁源里除了我們認(rèn)識的文字,那些標(biāo)簽都有著怎樣的含義?如何把網(wǎng)頁內(nèi)容“請”到我們的分析工具中來?爬取數(shù)據(jù)有怎樣的規(guī)律可循?這些都是第二部分將要呈現(xiàn)的內(nèi)容。


第2章 重新認(rèn)識網(wǎng)絡(luò)

1. 什么是Web前端

2. HTML的結(jié)構(gòu)


第3章 創(chuàng)建爬蟲

1. 什么是爬蟲

2. Python爬蟲的環(huán)境搭建

3. 爬蟲三部曲——獲取、解析、保持

小例子:創(chuàng)建第一個(gè)爬蟲


三、頁面解析

在之前的課程中,我們已經(jīng)知道了要怎樣繁復(fù)的工程才堆砌出絢麗的網(wǎng)頁,但這其中大部分的內(nèi)容是我們并不需要的。如何穿越層層與我們無關(guān)的標(biāo)簽和HTML屬性抽取到清潔的數(shù)據(jù)內(nèi)容?如何使用更簡潔高效的方式達(dá)到目的?大名鼎鼎的“正則”究竟是什么?這些是4-6章要重點(diǎn)講授的內(nèi)容。


第4章 復(fù)雜HTML解析

1. 正則表達(dá)式

2. 一個(gè)名叫“心靈雞湯”的擴(kuò)展庫

3. 導(dǎo)航樹

4. 突破反爬蟲的限制

案例1:靜態(tài)頁面爬蟲


第5章 動態(tài)渲染頁面的爬取

1. Ajax和動態(tài)HTML

2. 無界面瀏覽器PhantomJS

3. 自動化測試庫Selenium

案例2:動態(tài)爬蟲


第6章 Scrapy爬蟲架構(gòu)

1. Scrapy爬蟲結(jié)構(gòu)

2. 創(chuàng)建爬蟲模塊

3. 選擇器

4. 構(gòu)建Item Pipeline

5. 請求與相應(yīng)

案例3:Scrapy爬蟲


四、爬取結(jié)果的處理

到目前為止,我們處理的還都是規(guī)范數(shù)據(jù),但現(xiàn)實(shí)是,我們面對更多的是樣式不規(guī)范的數(shù)據(jù),放棄不符合預(yù)期的數(shù)據(jù)并不是一個(gè)長久之計(jì)。在我們無法挑選數(shù)據(jù)時(shí),這一章的內(nèi)容就顯得格外有用了。一個(gè)長句中究竟包含了哪些有效信息?一條評價(jià)反映出客戶怎樣的態(tài)度?接下來的內(nèi)容將介紹一些工具和方法,幫助我們控制或篩選進(jìn)入視線的數(shù)據(jù),為后續(xù)的數(shù)據(jù)分析做準(zhǔn)備。


第7章 數(shù)據(jù)清洗

1. 清洗結(jié)構(gòu)化數(shù)據(jù)

2. 清洗非結(jié)構(gòu)化數(shù)據(jù)

3. 數(shù)據(jù)標(biāo)準(zhǔn)化

案例4:計(jì)算詞頻


第8章 自然語言處理入門

1. 獲取文本語料

2. 加工原始文本

3. 從文本中提取信息

案例5:情感分析


優(yōu)惠信息:

現(xiàn)場班老學(xué)員9折優(yōu)惠;
同一單位三人以上同時(shí)報(bào)名9折優(yōu)惠;

以上優(yōu)惠不疊加。


報(bào)名流程:

1. 點(diǎn)擊“我要報(bào)名”,網(wǎng)上提交報(bào)名信息;

2. 訂單繳費(fèi);

3. 繳費(fèi)確認(rèn),開課前一周發(fā)送軟件準(zhǔn)備,電子版講義;
4. 現(xiàn)場領(lǐng)取發(fā)票及邀請函。


聯(lián)系方式:

魏老師
QQ:28819897142881989714  
Tel:010-68478566

Mail:vip@pinggu.org

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }