網(wǎng)絡(luò)爬蟲項(xiàng)目實(shí)戰(zhàn) 課件 項(xiàng)目8 社交Selenium爬蟲項(xiàng)目_第1頁(yè)
網(wǎng)絡(luò)爬蟲項(xiàng)目實(shí)戰(zhàn) 課件 項(xiàng)目8 社交Selenium爬蟲項(xiàng)目_第2頁(yè)
網(wǎng)絡(luò)爬蟲項(xiàng)目實(shí)戰(zhàn) 課件 項(xiàng)目8 社交Selenium爬蟲項(xiàng)目_第3頁(yè)
網(wǎng)絡(luò)爬蟲項(xiàng)目實(shí)戰(zhàn) 課件 項(xiàng)目8 社交Selenium爬蟲項(xiàng)目_第4頁(yè)
網(wǎng)絡(luò)爬蟲項(xiàng)目實(shí)戰(zhàn) 課件 項(xiàng)目8 社交Selenium爬蟲項(xiàng)目_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

項(xiàng)目8

社交Selenium爬蟲項(xiàng)目網(wǎng)絡(luò)爬蟲應(yīng)用項(xiàng)目式教程《網(wǎng)絡(luò)爬蟲項(xiàng)目實(shí)戰(zhàn)》高級(jí)篇8.1項(xiàng)目介紹8.2任務(wù)分解8.3項(xiàng)目實(shí)施目錄Content8.4課后練習(xí)8.5能力拓展8.1.1

項(xiàng)目目標(biāo)爬取某社交網(wǎng)站的arXiv論文速遞專欄,用詞云圖展示“計(jì)算機(jī)視覺與模式識(shí)別”領(lǐng)域論文熱點(diǎn)詞,效果如下圖所示。8.1.2學(xué)習(xí)目標(biāo)技能目標(biāo)1.能夠使用Selenium+CSS采集數(shù)據(jù)2.能夠使用Pandas清洗數(shù)據(jù)3.能夠使用Pandas分析數(shù)據(jù)4.能夠使用詞云圖可視化詞頻知識(shí)目標(biāo)1.熟悉數(shù)據(jù)采集過(guò)程2.熟悉數(shù)據(jù)清洗常見方法3.熟悉數(shù)據(jù)分析特點(diǎn)4.了解數(shù)據(jù)可視化形式素質(zhì)目標(biāo)1.培育項(xiàng)目管理能力2.培育解決實(shí)際問(wèn)題能力實(shí)訓(xùn)目標(biāo)實(shí)訓(xùn)項(xiàng)目爬取某社交網(wǎng)站,分析和可視化arxiv論文題目的單詞頻率實(shí)操內(nèi)容1.CSS選擇器定位網(wǎng)頁(yè)元素2.編寫Selenium爬蟲3.編寫數(shù)據(jù)清洗代碼4.編寫數(shù)據(jù)分析代碼5.設(shè)計(jì)和實(shí)施可視化詞頻8.2任務(wù)分解8.1項(xiàng)目目標(biāo)8.3項(xiàng)目實(shí)施目錄Content8.4課后練習(xí)8.5能力拓展8.2

任務(wù)分解從數(shù)據(jù)采集到可視化,本項(xiàng)目包括以下任務(wù)。數(shù)據(jù)采集論文標(biāo)題(英)論文標(biāo)題(中)下載地址作者發(fā)表單位研究方向數(shù)據(jù)清洗刪除重復(fù)行數(shù)據(jù)分析分詞詞頻統(tǒng)計(jì)詞頻排序數(shù)據(jù)可視化“計(jì)算機(jī)視覺與模式識(shí)別論文熱點(diǎn)詞”詞云圖項(xiàng)目8購(gòu)物Selenium爬蟲項(xiàng)目網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)項(xiàng)目式教程《網(wǎng)絡(luò)爬蟲項(xiàng)目實(shí)戰(zhàn)》高級(jí)篇8.2任務(wù)分解8.1項(xiàng)目介紹8.3項(xiàng)目實(shí)施目錄Content8.4課后練習(xí)8.5能力拓展8.3.1項(xiàng)目實(shí)施->數(shù)據(jù)采集(1)轉(zhuǎn)到Tomcat安裝目錄下的bin目錄,運(yùn)行startup.bat后,打開Chrome,訪問(wèn):50001/social/index.html,顯示網(wǎng)站首頁(yè),代表Tomcat運(yùn)行正常。如下圖所示。8.3.1項(xiàng)目實(shí)施->數(shù)據(jù)采集(2)打開PyCharm,選擇CreateNewProject,打開NewProject窗口,創(chuàng)建項(xiàng)目social,選擇“Existinginterpreter”選項(xiàng),Interpreter選擇Anaconda安裝目錄下的python.exe。如下圖所示。8.3.1項(xiàng)目實(shí)施->數(shù)據(jù)采集(3)創(chuàng)建social_spider.py,打開網(wǎng)站首頁(yè)后關(guān)閉,測(cè)試ChromeDriver。(4)運(yùn)行social_spider.py,看到Chrome瀏覽器打開網(wǎng)站首頁(yè),然后關(guān)閉瀏覽器。#encoding=utf-8importrandomimporttimefromseleniumimportwebdriverstart_url=":50001/social/index.html"if__name__=='__main__':#初始化ChromeDriverbrowser=webdriver.Chrome()#打開首頁(yè)

browser.get(start_url)#最大化窗口

browser.maximize_window()#顯式等待2~5秒鐘

time.sleep(random.randint(2,5)+random.random())#退出瀏覽器,并釋放資源

browser.quit()8.3.1項(xiàng)目實(shí)施->數(shù)據(jù)采集(5)打開網(wǎng)站首頁(yè),鼠標(biāo)停留在第一個(gè)學(xué)術(shù)速遞后右鍵,選擇“檢查”,在右邊“Elements”窗口查找學(xué)術(shù)速遞div。對(duì)照左邊窗口的顯示,找到學(xué)術(shù)速遞對(duì)應(yīng)的頁(yè)面元素。從下圖看出,學(xué)術(shù)速遞的CSS模式為“div.Feed”。8.3.1項(xiàng)目實(shí)施->數(shù)據(jù)采集(6)social_spider.py定義do_once方法,主方法中調(diào)用do_once方法。importredefdo_once():#定位每日速遞列表

topics=browser.find_elements_by_css_selector("div.Feed")fortopicintopics:#每日速遞

content_title=topic.find_element_by_css_selector('h2.ContentItem-titlea').textcontent_title_groups=re.match("(.+)\[([\d|\.]+)\]",content_title)print(content_title_groups[1],content_title_groups[2])if__name__=='__main__':……#顯式等待2~5秒鐘

time.sleep(random.randint(2,5)+random.random())#爬取首頁(yè)

do_once()#退出瀏覽器,并釋放資源

browser.quit()統(tǒng)計(jì)學(xué)學(xué)術(shù)速遞2022.7.18計(jì)算機(jī)視覺與模式識(shí)別學(xué)術(shù)速遞2022.7.15自然語(yǔ)言處理學(xué)術(shù)速遞2022.7.15人工智能學(xué)術(shù)速遞2022.7.15機(jī)器學(xué)習(xí)學(xué)術(shù)速遞2022.7.15……統(tǒng)計(jì)學(xué)學(xué)術(shù)速遞2022.7.14計(jì)算機(jī)視覺與模式識(shí)別學(xué)術(shù)速遞2022.7.13自然語(yǔ)言處理學(xué)術(shù)速遞2022.7.13人工智能學(xué)術(shù)速遞2022.7.13(7)運(yùn)行social_spider.py,結(jié)果如下圖所示。8.3.1項(xiàng)目實(shí)施->數(shù)據(jù)采集re.match(pattern,string,flags=0)pattern:模式字符串string:要匹配的字符串flags:可選參數(shù),比如re.I不區(qū)分大小寫嘗試從字符串的起始位置匹配一個(gè)模式,如果不是起始位置匹配成功的話,match就返回None;匹配成功的話,通過(guò)調(diào)用span()方法獲得匹配結(jié)果的位置。常見模式8.3.1項(xiàng)目實(shí)施->數(shù)據(jù)采集(8)回到網(wǎng)站首頁(yè),鼠標(biāo)停留在第一個(gè)學(xué)術(shù)速遞后右鍵,選擇“檢查”,在右邊“Elements”窗口查找“閱讀全文”輸入框。對(duì)照左邊窗口的顯示,找到“閱讀全文”輸入框?qū)?yīng)的頁(yè)面元素。從下圖看出,“閱讀全文”輸入框的CSS模式為”input.ContentItem-more”。8.3.1項(xiàng)目實(shí)施->數(shù)據(jù)采集(9)完善social_spider.py的do_once函數(shù),展開“閱讀全文”div。另外,忽略處理“計(jì)算機(jī)視覺和模式識(shí)別”每日速遞。defdo_once():#定位每日速遞列表

topics=browser.find_elements_by_css_selector("div.Feed")fortopicintopics:……ifcontent_title_groups:field_name=content_title_groups[1]#只處理”計(jì)算機(jī)與模式識(shí)別”方向論文

iffield_name.find("計(jì)算機(jī)視覺與模式識(shí)別")>-1:field_name="計(jì)算機(jī)視覺與模式識(shí)別"#展開閱讀全文divreadall_btn=topic.find_element_by_css_selector('input.ContentItem-more')readall_btn.click()#隱式等待2秒鐘

browser.implicitly_wait(2)8.3.1項(xiàng)目實(shí)施->數(shù)據(jù)采集(10)回到網(wǎng)站首頁(yè),鼠標(biāo)停留在第2個(gè)學(xué)術(shù)速遞后右鍵,選擇“檢查”,在右邊“Elements”窗口查找速遞詳情div。對(duì)照左邊窗口的顯示,找到速遞詳情對(duì)應(yīng)的頁(yè)面元素。從下圖看出,速遞詳情的CSS模式為“div.RichContent-inner>span”。8.3.1項(xiàng)目實(shí)施->數(shù)據(jù)采集(11)完善social_spider.py的do_once函數(shù),分離出每一行。defdo_once():#定位每日速遞列表

topics=browser.find_elements_by_css_selector("div.Feed")fortopicintopics:……ifcontent_title_groups:field_name=content_title_groups[1]#只處理”計(jì)算機(jī)與模式識(shí)別”方向論文

iffield_name.find("計(jì)算機(jī)視覺與模式識(shí)別")>-1:……#隱式等待2秒鐘

browser.implicitly_wait(2)#解析當(dāng)日速遞全文,行間分隔符位"\n"rich_content=topic.find_element_by_css_selector("div.RichContent-inner>span").textlines=rich_content.split("\n")8.3.1項(xiàng)目實(shí)施->數(shù)據(jù)采集(12)完善social_spider.py的do_once函數(shù),析取速遞詳情。defdo_once():#定位每日速遞列表

topics=browser.find_elements_by_css_selector("div.Feed")fortopicintopics:……ifcontent_title_groups:field_name=content_title_groups[1]#只處理”計(jì)算機(jī)與模式識(shí)別”方向論文

iffield_name.find("計(jì)算機(jī)視覺與模式識(shí)別")>-1:……lines=rich_content.split("\n")#解析出每一行包含的論文信息

article_sec_end=Falseforlineinlines:sub_field_head_groups=re.match("(.+)\((\d+)篇\)",line)ifsub_field_head_groups:sub_field_name=sub_field_head_groups[1]else:article_title_groups=re.match("【(\d+)】(.+)",line)ifarticle_title_groups:article_title=article_title_groups[2].strip()article_ctitle_groups=re.match("標(biāo)題:(.+)",line)ifarticle_ctitle_groups:article_ctitle=article_ctitle_groups[1].strip()article_href_groups=re.match("鏈接:(.+)",line)ifarticle_href_groups:article_href=article_href_groups[1].strip()article_authors_groups=re.match("作者:(.+)",line)ifarticle_authors_groups:article_authors=article_authors_groups[1].strip()article_org_groups=re.match("機(jī)構(gòu):(.+)",line)ifarticle_org_groups:article_org=article_org_groups[1].strip()article_sec_end=Trueprint(article_title,article_ctitle,article_href,article_authors,article_org,sub_field_name)8.3.1項(xiàng)目實(shí)施->數(shù)據(jù)采集(13)運(yùn)行social_spider.py,結(jié)果如下圖所示?!y(tǒng)計(jì)學(xué)學(xué)術(shù)速遞2022.7.15計(jì)算機(jī)視覺與模式識(shí)別學(xué)術(shù)速遞2022.7.14Symmetry-AwareTransformer-basedMirrorDetection基于對(duì)稱性感知的Transformer鏡面檢測(cè)/abs/2207.06332TianyuHuang,BowenDong,JiayingLin,XiaohuiLiu,RynsonW.H.Lau,WangmengZuoHarbinInstituteofTechnology,CityUniversityofHongKongTransformer……LeftVentricleContouringofApicalThree-ChamberViewson2DEchocardiography心尖三腔心切面二維超聲心動(dòng)圖左室壁輪廓/abs/2207.06330AlbertoGomez,MihaelaPorumb,AngelaMumith,ThierryJudge,ShanGao,Woo-JinChoKim,JorgeOliveira,AgisChartsiasUltromicsLtd,Oxford,UK,King’sCollegeLondon,UK,SherbrookeUniversity,Canada其他……計(jì)算機(jī)視覺與模式識(shí)別學(xué)術(shù)速遞2022.7.13自然語(yǔ)言處理學(xué)術(shù)速遞2022.7.13人工智能學(xué)術(shù)速遞2022.7.138.3.1項(xiàng)目實(shí)施->數(shù)據(jù)采集(14)完善social_spider.py的do_once函數(shù),保存計(jì)算機(jī)視覺與模式識(shí)別論文信息。importcsvdefdo_once():#定位每日速遞列表

topics=browser.find_elements_by_css_selector("div.Feed")fortopicintopics:……ifcontent_title_groups:field_name=content_title_groups[1]#只處理”計(jì)算機(jī)視覺與模式識(shí)別”方向論文

iffield_name.find("計(jì)算機(jī)視覺與模式識(shí)別")>-1:……lines=rich_content.split("\n")#解析出每一行包含的論文信息

article_sec_end=Falseforlineinlines:sub_field_head_groups=re.match("(.+)\((\d+)篇\)",line)ifsub_field_head_groups:sub_field_name=sub_field_head_groups[1]else:……ifarticle_org_groups:……print(article_title,article_ctitle,article_href,article_authors,article_org,sub_field_name)ifarticle_sec_end:withopen('arxiv_articles.csv',mode='a',encoding='utf-8',newline='')asf:csv_write=csv.writer(f)csv_write.writerow([article_title,article_ctitle,article_href,article_authors,article_org,field_name,sub_field_name])article_sec_end=False8.3.1項(xiàng)目實(shí)施->數(shù)據(jù)采集(15)打開arxiv_articles.csv,看到有66行數(shù)據(jù)。Symmetry-AwareTransformer-basedMirrorDetection,基于對(duì)稱性感知的Transformer鏡面檢測(cè),/abs/2207.06332,"TianyuHuang,BowenDong,JiayingLin,XiaohuiLiu,RynsonW.H.Lau,WangmengZuo","HarbinInstituteofTechnology,CityUniversityofHongKong",計(jì)算機(jī)視覺與模式識(shí)別,TransformerEntry-FlippedTransformerforInferenceandPredictionofParticipantBehavior,用于參與者行為推理和預(yù)測(cè)的入口翻轉(zhuǎn)轉(zhuǎn)換器,/abs/2207.06235,"BoHu,Tat-JenCham","NanyangTechnologicalUniversity,Singapore",計(jì)算機(jī)視覺與模式識(shí)別,Transformer……LeftVentricleContouringofApicalThree-ChamberViewson2DEchocardiography,心尖三腔心切面二維超聲心動(dòng)圖左室壁輪廓,/abs/2207.06330,"AlbertoGomez,MihaelaPorumb,AngelaMumith,ThierryJudge,ShanGao,Woo-JinChoKim,JorgeOliveira,AgisChartsias","UltromicsLtd,Oxford,UK,King’sCollegeLondon,UK,SherbrookeUniversity,Canada",計(jì)算機(jī)視覺與模式識(shí)別,其他Robustandefficientcomputationofretinalfractaldimensionthroughdeepapproximation,一種穩(wěn)健高效的深度逼近視網(wǎng)膜分維計(jì)算方法,/abs/2207.05757,"JustinEngelmann,AnaVillaplana-Velasco,AmosStorkey,MiguelO.Bernabeu","CDTBiomedicalAI,SchoolofInformatics,UniversityofEdinburgh,CentreforMedicalInformatics,UniversityofEdinburgh",計(jì)算機(jī)視覺與模式識(shí)別,其他8.3.1項(xiàng)目實(shí)施->數(shù)據(jù)采集(16)完善social_spider.py的主函數(shù),控制瀏覽器的滾動(dòng)欄向下移動(dòng),頁(yè)面載入所有數(shù)據(jù)后再讀取每篇arXiv論文信息。if__name__=='__main__':#初始化ChromeDriverbrowser=webdriver.Chrome()#打開首頁(yè)

browser.get(start_url)#最大化窗口

browser.maximize_window()foriinrange(9):#顯式等待2~5秒鐘

time.sleep(random.randint(2,5)+random.random())#移動(dòng)滾動(dòng)條到底部

js='window.scrollTo(0,100000)'browser.execute_script(js)#爬取首頁(yè)

do_once()#退出瀏覽器,并釋放資源

browser.quit()8.3.1項(xiàng)目實(shí)施->數(shù)據(jù)采集(17)打開arxiv_articles.csv,看到有1098行數(shù)據(jù),其中前66行和第67~132行重復(fù)。Symmetry-AwareTransformer-basedMirrorDetection,基于對(duì)稱性感知的Transformer鏡面檢測(cè),/abs/2207.06332,"Tianyu……Symmetry-AwareTransformer-basedMirrorDetection,基于對(duì)稱性感知的Transformer鏡面檢測(cè),/abs/2207.06332,"Tianyu……CRFormer:ACross-RegionTransformerforShadowRemoval,CRFormer:一種用于陰影去除的跨區(qū)域Transformer,/abs/2207.01600,"JinWan,HuiYin,ZhenyaoWu,XinyiWu,ZhihaoLiu,SongWang","BeijingJiaotongUniversity,UniversityofSouthCarolina,ChinaMobileResearchInstitute",計(jì)算機(jī)視覺與模式識(shí)別,Transformer……AutomaticQuantificationofVolumesandBiventricularFunctioninCardiacResonance.ValidationofaNewArtificialIntelligenceApproach,心臟共振中容量和雙心功能的自動(dòng)量化。一種新的人工智能方法的驗(yàn)證,/abs/2206.01746,"ArielH.Curiale,MatíasE.Calandrelli,LuccaDellazoppa,MarianoTrevisan,JorgeLuisBocián,JuanPabloBonifacio,GermánMato","Propuestayevaluacióndeunmétododeinteligenciaartificial1DepartmentofMedicalPhysics-TheBarilocheAtomicCenter-CONICET,UniversidadNacionaldeCuyo,HarvardMedicalSchool",計(jì)算機(jī)視覺與模式識(shí)別,其他8.3.1項(xiàng)目實(shí)施->數(shù)據(jù)采集Selenium執(zhí)行JavaScriptSelenium能夠執(zhí)行JS,這使得Selenium擁有更為強(qiáng)大的能力。既然能執(zhí)行JS,那么JS能做的事,Selenium大部分也能做。下面以操作百度頁(yè)面()搜索“selenium測(cè)試”為例:1)填充文本#輸入框輸入查詢值browser.find_element_by_css_selector("#kw").send_keys("selenium測(cè)試")2)觸發(fā)按鈕click事件#返回搜索按鈕并點(diǎn)擊element=browser.execute_script("returndocument.getElementById('su')")element.click()3)頁(yè)面滾動(dòng)到底部#滑動(dòng)滾動(dòng)欄到底部browser.execute_script("window.scrollTo(0,10000)")8.3.2項(xiàng)目實(shí)施->數(shù)據(jù)清洗(1)創(chuàng)建data_clean.py,讀入arxiv_articles..csv到DataFrame類型。#encoding=utf-8importpandasaspd#顯示所有列pd.set_option('display.max_columns',None)#顯示寬度pd.set_option('display.width',200)#列名和數(shù)據(jù)對(duì)齊pd.set_option('display.unicode.east_asian_width',True)#讀入CSV文件到DataFramelabels=["論文名字(英文)","論文名字(中文)","論文地址","論文作者","作者單位","研究領(lǐng)域","研究方向"]df=pd.read_csv('arxiv_articles.csv',encoding="utf-8",names=labels)print(df.head())(2)刪除重復(fù)記錄。#去重print("去重前:",df.shape)df.drop_duplicates(subset=["論文名字(英文)","論文作者"],inplace=True)print("去重后:",df.shape)8.3.2項(xiàng)目實(shí)施->數(shù)據(jù)清洗(3)保存清洗后的數(shù)據(jù)。打開arxiv_articles_clean.csv,有1032條商品記錄,結(jié)果如下圖。8.3.3項(xiàng)目實(shí)施->數(shù)據(jù)分析(1)創(chuàng)建data_analysis.py,讀入arxiv_articles_clean.csv到DataFrame類型。#encoding=utf-8importpandasaspd#顯示所有列pd.set_option('display.max_columns',None)#顯示寬度pd.set_option('display.width',200)#列名和數(shù)據(jù)對(duì)齊pd.set_option('display.unicode.east_asian_width',True)#讀入CSV文件到DataFramelabels=["論文名字(英文)","論文名字(中文)","論文地址","論文作者","作者單位","研究領(lǐng)域","研究方向"]df=pd.read_csv('arxiv_articles.csv',encoding="utf-8",names=labels)print(df.head())8.3.3項(xiàng)目實(shí)施->數(shù)據(jù)分析(2)完善data_analysis.py,用Jieba把中文論文名稱分詞,統(tǒng)計(jì)每個(gè)單詞的使用頻率。#切分單詞counts={}titles=df["論文名字(中文)"].tolist()fortitleintitles:words_raw=jieba.lcut(title,cut_all=True)forwordinwords_raw:iflen(word)<=1:continueelse:counts[word]=counts.get(word,0)+1#計(jì)數(shù)print(counts){'基于':285,'對(duì)稱':7,'對(duì)稱性':3,'性感':6,'感知':39,'Transformer':37,'鏡面':2,'檢測(cè)':143,'用于':150,'參與':2,'參與者':2,……'高像素':1,'容量':1,'心功能':1}運(yùn)行結(jié)果8.3.3項(xiàng)目實(shí)施->數(shù)據(jù)分析(3)在項(xiàng)目根目錄New->File,創(chuàng)建stopwords.txt,定義停用詞表。基于用于可以進(jìn)行面向一個(gè)一種不可一次及其不同一對(duì)兩步更好使用8.3.3項(xiàng)目實(shí)施->數(shù)據(jù)分析(4)待處理詞語(yǔ)列表跳過(guò)stopwords.txt定義的停用詞。#從待處理單詞中刪除停用詞words_clean=[]stopwords=[line.strip()forlineinopen("stopwords.txt",encoding='utf-8')]print("處理前詞語(yǔ)數(shù)量:",len(counts))fork,vincounts.items():ifk.strip()notinstopwords:words_clean.append((k,v))print("處理后詞語(yǔ)數(shù)量:",len(words_clean))處理前詞語(yǔ)數(shù)量:2820處理后詞語(yǔ)數(shù)量:2805運(yùn)行結(jié)果8.3.3項(xiàng)目實(shí)施->數(shù)據(jù)分析(5)按照詞語(yǔ)使用頻率倒序排列。為了便于復(fù)制處理結(jié)果到頁(yè)面,也轉(zhuǎn)換Python列表到JavaScript列表對(duì)象。#按照詞頻倒序排列words_clean.sort(key=lambdax:x[1],reverse=True)#生成JS格式字典列表,便于復(fù)制html_str="["fork,vinwords_clean[0:100]:html_str=html_str+"{"+"name:'{}',value:'{}'".format(k,v)+"},"#刪除最后一個(gè)元素后面的","html_str=html_str[0:-1]+"]"print(html_str)[{name:'學(xué)習(xí)',value:'212'},{name:'圖像',value:'205'},{name:'檢測(cè)',value:'143'},…..,{name:'一致性',value:'17'},{name:'編碼',value:'17'},{name:'標(biāo)記',value:'17'}]運(yùn)行結(jié)果8.3.4項(xiàng)目實(shí)施->數(shù)據(jù)可視化(1)在項(xiàng)目根目錄New->Directory,創(chuàng)建app目錄。(2)在app目錄下New->Directory,創(chuàng)建目錄static,然后把echarts.min.js和echarts-wordcloud.min.js復(fù)制到app/static目錄。(3)在app目錄下New->Directory,創(chuàng)建templates目錄。8.3.4項(xiàng)目實(shí)施->數(shù)據(jù)可視化(4)在templates目錄下NewHTMLFile,創(chuàng)建single_chart.html。8.3.4項(xiàng)目實(shí)施->數(shù)據(jù)可視化(5)在single_chart.html中引入依賴的JS文件。8.3.4項(xiàng)目實(shí)施->數(shù)據(jù)采集(6)完善single_chart.html,定義div元素和編寫JS代碼。其中,data值來(lái)自上面任務(wù)data_analysis.py的運(yùn)行結(jié)果。myChart1獲取chart1元素,把wordFreqData傳給底層的詞云庫(kù),顯示詞云圖。<body><divid="chart1"style="float:left;width:600px;height:400px"></div> <script>varmychart1=echarts.init(document.getElementById("chart1"));option={title:{text:'計(jì)算機(jī)視覺與模式識(shí)別論文題目熱門詞',x:'center',textStyle:{color:'red',fontWeight:'bold',fontSize:'20'}},tooltip:{show:true

},series:[{name:'計(jì)算機(jī)視覺與模式識(shí)別論文題目熱門詞',type:'wordCloud',sizeRange:[6,66],textStyle:{normal:{color:function(){return'rgb('+[Math.round(Math.random()*160),Math.round(Math.random()*160),Math.round(Math.random()*160)].join(',')+')';}},emphasis:{shadowBlur:10,shadowColor:'#333'8.3.4項(xiàng)目實(shí)施->數(shù)據(jù)采集}},data:[{name:'學(xué)習(xí)',value:'212'},……,{name:'標(biāo)記',value:'17'}]}]//series結(jié)束

};//option結(jié)束

mychart1.setOption(option);</script></body>項(xiàng)目8

社交Selenium爬蟲項(xiàng)目網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)項(xiàng)目式教程《網(wǎng)絡(luò)爬蟲項(xiàng)目實(shí)戰(zhàn)》高級(jí)篇8.2任務(wù)分解8.1項(xiàng)目介紹8.4課后練習(xí)目錄Content8.3項(xiàng)目實(shí)施8.5能力拓展8.4課后練習(xí)1.選擇題1.webdriver執(zhí)行JavaScript不可以()。A.填充文本B.觸發(fā)按鈕click事件C.頁(yè)面滾動(dòng)到底部 D.關(guān)閉瀏覽器2.webdriver.find_element_by_css_selector("#kw")中,"#kw"選擇()。A.id等于kw的元素。 B.<kw>元素。C.屬性值kw為前綴的元素。 D.屬性值kw為后綴的元素。3.df.drop_duplicates(subset=["論文名字(英文)","論文作者"],inplace=True)中,”inplace=True”表示()。A.去重結(jié)果更新df。 B.去重結(jié)果不更新df。C.刪除重復(fù)的記錄。 D.只更新論文名字(英文)和論文作者。8.4課后練習(xí)1.選擇題4.執(zhí)行“groups=re.match("姓名:(.+),

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論