智能計算平臺應(yīng)用開發(fā)(初級)-實(shí)驗手冊-開發(fā)實(shí)踐-電影評論數(shù)據(jù)采集實(shí)驗手冊-學(xué)員用書_第1頁
智能計算平臺應(yīng)用開發(fā)(初級)-實(shí)驗手冊-開發(fā)實(shí)踐-電影評論數(shù)據(jù)采集實(shí)驗手冊-學(xué)員用書_第2頁
智能計算平臺應(yīng)用開發(fā)(初級)-實(shí)驗手冊-開發(fā)實(shí)踐-電影評論數(shù)據(jù)采集實(shí)驗手冊-學(xué)員用書_第3頁
智能計算平臺應(yīng)用開發(fā)(初級)-實(shí)驗手冊-開發(fā)實(shí)踐-電影評論數(shù)據(jù)采集實(shí)驗手冊-學(xué)員用書_第4頁
智能計算平臺應(yīng)用開發(fā)(初級)-實(shí)驗手冊-開發(fā)實(shí)踐-電影評論數(shù)據(jù)采集實(shí)驗手冊-學(xué)員用書_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

電影評論數(shù)據(jù)采集實(shí)驗手冊學(xué)員用書

目錄TOC\o"一-三"\h\z\u一參考資料與工具 三四六五二三三二\h一一.一參考資料與工具 三四六五二三三三\h一二電影評論數(shù)據(jù)采集 三四六五二三三四\h二二.一課程介紹 三四六五二三三五\h二二.二教學(xué)目地 三四六五二三三六\h二二.三案例背景 三四六五二三三七\(yùn)h二二.四任務(wù) 三四六五二三三八\h三演練場景一:目地站點(diǎn)網(wǎng)頁分析 三四六五二三三九\h三演練場景二:提取網(wǎng)頁數(shù)值 三四六五二三四零\h四演練場景三:采集數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫 三四六五二三四一\h六二.五評分表 三四六五二三四二\h八

電影評論數(shù)據(jù)采集實(shí)驗手冊第PAGE三頁參考資料與工具參考資料與工具文檔所列出地命令以與參考文檔,請根據(jù)實(shí)際環(huán)境地不同產(chǎn)品版本使用對應(yīng)地命令以與文檔。參考文檔:《MongoDB官方文檔》《requests庫官方文檔》《BeautifulSoup官方文檔》軟件工具:編號工具名稱版本一MongoDB四.二.三二Anaconda三.六版本與以上

電影評論數(shù)據(jù)采集課程介紹網(wǎng)絡(luò)爬蟲,通過編寫自動化程序或腳本對互聯(lián)網(wǎng)數(shù)據(jù)行采集,可以充分地挖掘與利用互聯(lián)網(wǎng)數(shù)據(jù)信息,是一種重要地數(shù)據(jù)收集方式與途徑。同時,由于互聯(lián)網(wǎng)網(wǎng)頁結(jié)構(gòu)地復(fù)雜與差異,以與網(wǎng)絡(luò)數(shù)據(jù)體量龐大,網(wǎng)絡(luò)爬蟲采集地數(shù)據(jù)也面臨著質(zhì)量差,數(shù)據(jù)冗余以與數(shù)據(jù)存儲等方面地挑戰(zhàn)。教學(xué)目地可以掌握網(wǎng)頁結(jié)構(gòu)分析方法;可以編寫爬蟲代碼獲取網(wǎng)頁數(shù)據(jù);能將采集數(shù)據(jù)導(dǎo)入NoSQL數(shù)據(jù)庫MongoDB行存儲。案例背景說明:本文所涉與地案例僅為樣例,實(shí)際操作請以真實(shí)設(shè)備環(huán)境為準(zhǔn),具體配置步驟請參考對應(yīng)地產(chǎn)品文檔。數(shù)據(jù)分析師A需求對某電影評論網(wǎng)站數(shù)據(jù)行采集,根據(jù)業(yè)務(wù)需求采集針對某一部電影地用戶ID,評論時間以與評論內(nèi)容地信息,并將采集數(shù)據(jù)行持久化存儲,具體需求完成以下步驟:向目地站點(diǎn)發(fā)起請求;獲取目地站點(diǎn)響應(yīng)內(nèi)容;分析目地站點(diǎn)地網(wǎng)頁結(jié)構(gòu);編寫代碼獲取網(wǎng)頁數(shù)據(jù);存儲采集數(shù)據(jù)。任務(wù)演練場景一:目地站點(diǎn)網(wǎng)頁分析背景行網(wǎng)頁數(shù)據(jù)分析前,首先需求獲取目地站點(diǎn)地網(wǎng)頁內(nèi)容,即向目地站點(diǎn)發(fā)送請求,再獲取網(wǎng)頁地響應(yīng)內(nèi)容,根據(jù)網(wǎng)頁響應(yīng)內(nèi)容行網(wǎng)頁結(jié)構(gòu)分析,確認(rèn)采集數(shù)據(jù)在網(wǎng)頁地位置。思考網(wǎng)頁分析主要包含哪些內(nèi)容?任務(wù)一 向目地站點(diǎn)發(fā)送請求導(dǎo)入網(wǎng)頁請求庫requestsrequests是Python地HTTP庫,在導(dǎo)入requests庫之前,需確認(rèn)在Python已安裝。importrequestsfromrequests.exceptionsimportRequestException配置請求信息通過requests.get(url,headers)方法請求網(wǎng)頁,其傳入地參數(shù)是url與headers。url:目地站點(diǎn)地址信息;headers:瀏覽器信息,若不添加headers信息,服務(wù)器無法識別瀏覽器信息,則將該請求視為非法請求,無法獲取正常地響應(yīng)結(jié)果。最后打印出狀態(tài)碼status_code地返回結(jié)果。注意:每個瀏覽器地請求信息不同,需求根據(jù)實(shí)際情況傳入該參數(shù)信息。url='https://movie.douban./subject/二七一一九七二四/ments?sort=new_score&status=P'headers={'User-Agent':'Mozilla/五.零(Macintosh;IntelMacOSX一零_一四_六)AppleWebKit/五三七.三六(KHTML,likeGecko)Chrome/七九.零.三九四五.一三零Safari/五三七.三六'}response=requests.get(url,headsers=headers)print(response.status_code)請在下面橫線填寫網(wǎng)頁請求返回結(jié)果。網(wǎng)頁請求結(jié)果狀態(tài)碼:__________問題研討網(wǎng)頁請求方式有哪幾種主要類型(至少列舉四種)?任務(wù)二 獲取網(wǎng)頁內(nèi)容獲取網(wǎng)頁內(nèi)容。requests.get()方法請求返回參數(shù)text獲取網(wǎng)頁源代碼內(nèi)容。html=response.textprint(type(response.text))請在下面橫線填寫response.text地數(shù)據(jù)類型。response.text地數(shù)據(jù)類型:__________問題研討requests.get()方法將返回哪些參數(shù)結(jié)果?任務(wù)三 網(wǎng)頁結(jié)構(gòu)分析請根據(jù)網(wǎng)頁內(nèi)容在下表填寫采集數(shù)據(jù)字段用戶名,評論時間,評論內(nèi)容地標(biāo)簽信息:字段標(biāo)簽名稱標(biāo)簽類型usertimement任務(wù)四 構(gòu)造網(wǎng)頁獲取函數(shù)構(gòu)造網(wǎng)頁獲取函數(shù)。將以上代碼封裝為函數(shù),以便于多次調(diào)用,自定義函數(shù)名稱為get_page(),將url作為傳入?yún)?shù)。在函數(shù)體,使用if條件語句判斷響應(yīng)狀態(tài),若狀態(tài)碼為正常,則返回網(wǎng)頁內(nèi)容;若網(wǎng)頁請求失敗,則返回None。defget_page(url):headers={'User-Agent':'Mozilla/五.零(Macintosh;IntelMacOSX一零_一四_六)AppleWebKit/五三七.三六(KHTML,likeGecko)Chrome/七九.零.三九四五.一三零Safari/五三七.三六'}try:response=requests.get(url,headers=headers)ifresponse.status_code==二零零:returnresponse.textreturnNoneexceptRequestException:returnNone問題研討發(fā)送請求時,添加headers參數(shù)地主要作用是什么?演練場景二:提取網(wǎng)頁數(shù)值背景網(wǎng)頁信息已經(jīng)全部獲取成功,現(xiàn)在分析師需求從頁面信息提取出業(yè)務(wù)所需求地數(shù)據(jù),即用戶名稱,評論地時間與評論內(nèi)容。思考從網(wǎng)頁內(nèi)容提取目地數(shù)據(jù)需求行哪些操作,具體包含什么內(nèi)容?任務(wù)一 網(wǎng)頁解析導(dǎo)入BeautifulSoup庫本次實(shí)驗采用BeautifulSoup庫對網(wǎng)頁行解析,相比于直接提取與正則表達(dá)式匹配地方法,使用BeautifulSoup更加簡潔,高效,導(dǎo)入前需確認(rèn)已安裝BeautifulSoup庫。frombs四importBeautifulSoup解析網(wǎng)頁聲明BeautifulSoup對象為soup,并傳入html代碼與解析方式,BeautifulSoup提供以下四種解析庫:解析器使用方法說明Python標(biāo)準(zhǔn)庫BeautifulSoup(makeup,"html.parser")Python地內(nèi)置標(biāo)準(zhǔn)庫lxmlHTML解析器BeautifulSoup(makeup,"lxml")常用HTML代碼解析器lxmlXML解析器BeautifulSoup(makeup,"xml")唯一支持XML地解析器html五libBeautifulSoup(makeup,"html五lib")以瀏覽器地方式解析文檔并生成HTML五格式地文檔soup=BeautifulSoup(html,'lxml')問題研討網(wǎng)頁解析地方式有哪些(至少列舉四種)?任務(wù)二 網(wǎng)頁數(shù)值提取提取數(shù)據(jù)find_all():查找標(biāo)簽,通過class_設(shè)置標(biāo)簽類型,class_="ment"與attrs={"class":"ment-info"}兩種寫法實(shí)現(xiàn)結(jié)果相同。注意:class在Python屬于關(guān)鍵字,因此class需求添加下劃線。items=soup.find_all("div",class_="ment")foriteminitems:info=item.find_all(name='span',attrs={"class":"ment-info"})forusersininfo:user=users.find_all(name='a',attrs={"class":""})[零].string生成格式化數(shù)據(jù)yield{}:yield方法為生成器,迭代地將數(shù)據(jù)返回結(jié)果寫入字典;strip():strip方法用于去掉字符串多余地空格。defparse_page(html):soup=BeautifulSoup(html,'lxml')items=soup.find_all("div",class_="ment")foriteminitems:info=item.find_all(name='span',attrs={"class":"ment-info"})forusersininfo:user=users.find_all(name='a',attrs={"class":""})[零].stringyield{"user":user,"time":item.find_all(name='span',attrs={"class":"ment-time"})[零].string.strip(),"ment":item.find_all(name='span',attrs={"class":"short"})[零].string}請在下面表格填寫采集地前三條數(shù)據(jù)信息:用戶名稱評論時間問題研討除了find_all()方法,BeautifulSoup庫還提供了哪些數(shù)值查找提取地方法?演練場景三:采集數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫背景分析師A已經(jīng)根據(jù)業(yè)務(wù)目地提取出相應(yīng)地數(shù)據(jù)信息,現(xiàn)在需求將這些數(shù)據(jù)存儲到數(shù)據(jù)庫。思考請描述非關(guān)系型結(jié)構(gòu)地數(shù)據(jù)存儲方式。任務(wù)一 數(shù)據(jù)庫配置啟動MondoDB數(shù)據(jù)庫。啟動數(shù)據(jù)庫前請確認(rèn)已安裝MongoDB數(shù)據(jù)庫,并已配置好系統(tǒng)環(huán)境變量。具體安裝操作請參考附件《基于為云地一+X項目應(yīng)用開發(fā)軟件安裝參考手冊》。入命令提示符界面輸入以下命令:--dpath:指定數(shù)據(jù)庫路徑。mongod–dpath‘?dāng)?shù)據(jù)庫路徑’數(shù)據(jù)庫啟動后打開瀏覽器,輸入數(shù)據(jù)庫地址信息,如:localhost:二七零一七,默認(rèn)端口號為二七零一七,若頁面信息提示:ItlookslikeyouaretryingtoaccessMongoDBoverHTTPonthenativedriverport,則數(shù)據(jù)庫啟動成功。任務(wù)二 Python連接MongoDB導(dǎo)入pymongo庫。pymongo庫用于Python操作MongoDB數(shù)據(jù)庫,導(dǎo)入之前需確認(rèn)已正確安裝pymongo庫。importpymongo創(chuàng)建鏈接。pymongo.MongoClient():創(chuàng)建數(shù)據(jù)庫連接對象,并傳入數(shù)據(jù)庫地址信息;mongo_url:數(shù)據(jù)庫地址;mongo_db:數(shù)據(jù)庫名稱;mongo_table:表名稱。mongo_url=localhostmongo_db=moviemongo_table=mentclient=pymongo.MongoClient(mongo_url)db=client[mongo_db]創(chuàng)建數(shù)據(jù)庫寫入函數(shù)。使用insert()方法向數(shù)據(jù)庫插入數(shù)據(jù)。defsave_to_mongo(content):

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論