《Python》實(shí)訓(xùn)九“結(jié)巴”中文分詞庫(kù)的使用_第1頁(yè)
《Python》實(shí)訓(xùn)九“結(jié)巴”中文分詞庫(kù)的使用_第2頁(yè)
《Python》實(shí)訓(xùn)九“結(jié)巴”中文分詞庫(kù)的使用_第3頁(yè)
《Python》實(shí)訓(xùn)九“結(jié)巴”中文分詞庫(kù)的使用_第4頁(yè)
《Python》實(shí)訓(xùn)九“結(jié)巴”中文分詞庫(kù)的使用_第5頁(yè)
已閱讀5頁(yè),還剩127頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2/2實(shí)訓(xùn)任務(wù):“結(jié)巴”中文分詞庫(kù)的使用學(xué)校名稱(chēng):班級(jí)名稱(chēng):學(xué)號(hào)/工號(hào):學(xué)生姓名:實(shí)訓(xùn)日期:

1.實(shí)訓(xùn)目的了解jieba庫(kù)的基本功能熟練掌握jieba庫(kù)的安裝熟練掌握jieba庫(kù)的常用函數(shù)使用,包括:jieba.lcut(s)、jieba.lcut(s,cut_all=True)、jieba.lcut_for_search(s)、jieba.add_word(w)掌握jieba庫(kù)的三種分詞模式的應(yīng)用2.實(shí)訓(xùn)環(huán)境普通電腦,并安裝以下軟件:Windows7(或者以上版本)操作系統(tǒng)PyCharm軟件Python3.8以上版本3.實(shí)訓(xùn)內(nèi)容任務(wù)一:jieba庫(kù)的三種分詞模式的訓(xùn)練1、任務(wù)內(nèi)容編寫(xiě)程序,應(yīng)用jieba庫(kù)的三種分詞模式,對(duì)字符串“jieba是優(yōu)秀的中文分詞第三方庫(kù)”進(jìn)行分詞。函數(shù)名稱(chēng)描述jieba.lcut(s)精確模式,返回一個(gè)列表類(lèi)型。jieba.lcut(s,cut_all=True)全模式,返回一個(gè)列表類(lèi)型。jieba.lcut_for_search(s)搜索引擎模式,返回一個(gè)列表類(lèi)型。jieba.add_word(w)向分詞的詞典增加新詞w。要求關(guān)鍵代碼做好注釋?zhuān)Ч缦聢D所示2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼importjiebaprint(jieba.__version__)s='路不通行不得小便路不通行不得在此小便'result=jieba.lcut(s)print("精確模式:",result)result=jieba.lcut(s,cut_all=True)print("全模式:",result)result=jieba.lcut_for_search(s)print("搜索引擎模式:",result)jieba.add_word('計(jì)算機(jī)編程語(yǔ)言')result=jieba.lcut(s)print("加入新詞后的精確模式:",result)3、參考答案及解析解析略任務(wù)二:英文文本解析1、任務(wù)內(nèi)容編寫(xiě)程序,對(duì)一個(gè)txt格式的英文文章(比如english.txt)進(jìn)行文本解析。程序提示輸入一個(gè)英文文章的路徑。打開(kāi)該文件,并讀取全部?jī)?nèi)容。讀取文件時(shí)請(qǐng)注意字符的編碼格式。字符轉(zhuǎn)換為小字,并把特殊字符“!"#$%()*+<_>/:;<>=?@[\]\^_{}|~”刪除。進(jìn)行分詞和統(tǒng)計(jì),把前10個(gè)高頻詞顯示出來(lái)。要求關(guān)鍵代碼做好注釋2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼#定義一個(gè)函數(shù):defgetext():fname=input("請(qǐng)輸入要打開(kāi)的文件路徑及名稱(chēng),以txt結(jié)尾:")fo=open(fname,encoding='utf-8')txt=fo.read()txt=txt.lower()forchin'!"#$%()*+<_>/:;<>=?@[\]\^_{}|~':txt=txt.replace(ch,'')returntxt#調(diào)用函數(shù)hamlettxt=getext()#進(jìn)行分詞和統(tǒng)計(jì)words=hamlettxt.split()counts={}forwordinwords:counts[word]=counts.get(word,0)+1items=list(counts.items())items.sort(key=lambdax:x[1],reverse=True)foriinrange(10):word,count=items[i]print("{:<10}{:>5}".format(word,count))3、參考答案及解析解析略任務(wù)三:中文文本解析1、任務(wù)內(nèi)容編寫(xiě)程序,對(duì)一個(gè)txt格式的中文文章(比如學(xué)習(xí)強(qiáng)國(guó)簡(jiǎn)介.txt)進(jìn)行文本解析。程序提示輸入一個(gè)中文文章的路徑。打開(kāi)該文件,并讀取全部?jī)?nèi)容。讀取文件時(shí)請(qǐng)注意字符的編碼格式。進(jìn)行分詞和統(tǒng)計(jì),把前10個(gè)高頻詞顯示出來(lái)。在分詞時(shí)需要使用liebiao=jieba.lcut(txt)進(jìn)行分詞。要求關(guān)鍵代碼做好注釋2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼importjieba#讀取文本fname=input("請(qǐng)輸入要打開(kāi)的文件地址及文本名稱(chēng),以.txt結(jié)尾,路徑要使用/:")fo=open(fname,encoding="utf-8")txt=fo.read()#分詞liebiao=jieba.lcut(txt)#統(tǒng)計(jì)counts={}forwordinliebiao:iflen(word)==1:continueelse:counts[word]=counts.get(word,0)+1items=list(counts.items())items.sort(key=lambdax:x[1],reverse=True)#打印顯示foriinrange(15):word,count=items[i]print('{:<10}{:>5}'.format(word,count))3、參考答案及解析解析略4.實(shí)訓(xùn)心得體會(huì)實(shí)訓(xùn)任務(wù):wordcloud詞云的使用學(xué)校名稱(chēng):班級(jí)名稱(chēng):學(xué)號(hào)/工號(hào):學(xué)生姓名:實(shí)訓(xùn)日期:

1.實(shí)訓(xùn)目的了解jwordcloud詞云的基本功能熟練掌握wordcloud詞云的安裝熟練掌握使用wordcloud詞云按指定的圖形,生成目標(biāo)圖片結(jié)果掌握wordcloud的常用參數(shù)的應(yīng)用掌握使用wordcloud,生成英文詞云掌握使用wordcloud,生成中文詞云2.實(shí)訓(xùn)環(huán)境普通電腦,并安裝以下軟件:Windows7(或者以上版本)操作系統(tǒng)PyCharm軟件Python3.8以上版本3.實(shí)訓(xùn)內(nèi)容任務(wù)一:生成英文詞云1、任務(wù)內(nèi)容編寫(xiě)程序,應(yīng)用wordcloud生成鞏詞云。具體要求:對(duì)以下字符串“PythonJAVAC#C++ASP.NETPythonandWordCloudPython”生成一個(gè)詞云,并保存為圖片。要求關(guān)鍵代碼做好注釋?zhuān)Ч缦聢D所示2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼importmatplotlib.pyplotaspltimportwordcloudtxt="PythonJAVAC#C++ASP.NETPythonandWordCloudPython"w=wordcloud.WordCloud(background_color="white")#配置對(duì)象參數(shù)w.generate(txt)#加載詞云文本w.to_file("Pywordcloud.png")#輸出詞云文件plt.imshow(w)plt.axis("off")plt.show()3、參考答案及解析解析略任務(wù)二:生成心形的英文詞云1、任務(wù)內(nèi)容編寫(xiě)程序,如下要求:應(yīng)用wordcloud庫(kù)對(duì)素材中的“phthon.txt”文件中的文本生成一個(gè)詞云,并保存為圖片。原始參照?qǐng)D形如圖所示。要求關(guān)鍵代碼做好注釋?zhuān)Ч缦?、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼importwordcloud

fromimageioimportimread

#讀取文本

file=open("Python.txt","r",encoding='utf-8')

txt=file.read()

#讀取圖片

maskImage=imread("love.png")#圖片形狀

w=wordcloud.WordCloud()

#配置參數(shù),并生成詞云

w=wordcloud.WordCloud(background_color="white",\

width=600,height=500,mask=maskImage)

w.generate(txt)#加載詞云文本

w.to_file("Pywcloud.png")#輸出詞云文件

plt.imshow(w)

plt.axis("off")

plt.show()

#生成中文詞云3、參考答案及解析解析略任務(wù)三:生成中文詞云1、任務(wù)內(nèi)容編寫(xiě)程序,對(duì)一個(gè)中文字符串進(jìn)行文本解析。中文內(nèi)容為“程序設(shè)計(jì)語(yǔ)言是計(jì)算機(jī)能夠理解和識(shí)別用戶(hù)操作意圖的一種交互體系,它按照特定規(guī)則組織計(jì)算機(jī)指令,使計(jì)算機(jī)能夠自動(dòng)進(jìn)行各種運(yùn)算處理”。以字體“msyh.ttc”生成長(zhǎng)方形的詞云,長(zhǎng)是1000,高是700。進(jìn)行分詞和統(tǒng)計(jì)。在分詞時(shí)需要使用liebiao=jieba.lcut(txt)進(jìn)行分詞。輸出圖片為computerlanguage.png要求關(guān)鍵代碼做好注釋2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼importjiebaimportwordcloudtxt="程序設(shè)計(jì)語(yǔ)言是計(jì)算機(jī)能夠理解和識(shí)別用戶(hù)操作意圖的一種交互體系,它按照特定規(guī)則組織計(jì)算機(jī)指令,使計(jì)算機(jī)能夠自動(dòng)進(jìn)行各種運(yùn)算處理"w=wordcloud.WordCloud(width=1000,font_path="msyh.ttc",height=700)w.generate("".join(jieba.lcut(txt)))w.to_file("computerlanguage.png")print("詞云生成成功.")3、參考答案及解析解析略4.實(shí)訓(xùn)心得體會(huì)實(shí)訓(xùn)任務(wù):可視化中文詞云項(xiàng)目學(xué)校名稱(chēng):班級(jí)名稱(chēng):學(xué)號(hào)/工號(hào):學(xué)生姓名:實(shí)訓(xùn)日期:

1.實(shí)訓(xùn)目的了解wordcloud詞云的基本功能了解jeiba庫(kù)的基本功能熟練掌握jeiba庫(kù)和wordcloud生成指定形狀的詞云2.實(shí)訓(xùn)環(huán)境普通電腦,并安裝以下軟件:Windows7(或者以上版本)操作系統(tǒng)PyCharm軟件Python3.8以上版本3.實(shí)訓(xùn)內(nèi)容任務(wù)一:生成英文詞云1、任務(wù)內(nèi)容編寫(xiě)程序,應(yīng)用wordcloud生成詞云。背景描述:扶貧是保障貧困戶(hù)的合法權(quán)益,取消貧困負(fù)擔(dān)。2020年11月23日,中國(guó)832個(gè)國(guó)家級(jí)貧困縣全部脫貧摘帽。我國(guó)脫貧攻堅(jiān)取得的成就,見(jiàn)證了“中國(guó)力量”。消除絕對(duì)貧困是一項(xiàng)對(duì)中華民族、對(duì)人類(lèi)都具有重大意義的偉業(yè)!小劉在一間大數(shù)據(jù)技術(shù)應(yīng)用與開(kāi)發(fā)公司工作,是一名Python程序員。他的項(xiàng)目經(jīng)理要求小劉對(duì)一篇關(guān)于中國(guó)的精準(zhǔn)扶貧的文章進(jìn)行中文分詞,并對(duì)高頻出現(xiàn)的一些詞語(yǔ)自動(dòng)生成一個(gè)詞云圖片。這個(gè)詞云圖將會(huì)應(yīng)用于一個(gè)大數(shù)據(jù)可視化大屏展示系統(tǒng)中。要求如下:1)使用IO函數(shù),對(duì)文本文件的讀取。2)應(yīng)用jieba進(jìn)行中文分詞。3)詞頻統(tǒng)計(jì)。4)對(duì)詞頻進(jìn)行排序。5)對(duì)高頻詞進(jìn)行輸出顯示,并對(duì)分詞使用空格拼接成字符串。6)讀取圖片,以生成詞云的形狀。7)設(shè)置wordcloud的參數(shù),自動(dòng)生成詞云圖片并保存。要求關(guān)鍵代碼做好注釋?zhuān)Ч缦聢D所示2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼#可視化中文詞云項(xiàng)目importjiebaimportwordcloudfromimageioimportimread#01讀取文件,并保存在mytxt中myfile=open("article.txt",mode="r",encoding='UTF-8')mytxt=myfile.read()myfile.close()#02使用jieba庫(kù),采用精確模式進(jìn)行中文分詞mywords=jieba.lcut(mytxt)#03詞頻計(jì)數(shù)wordsCounts={}foronewordinmywords:iflen(oneword)==1:continueelse:wordsCounts[oneword]=wordsCounts.get(oneword,0)+1exclude50words={"11","日期"}#需要排除的關(guān)鍵字,用于統(tǒng)計(jì)高頻詞foronewordinexclude50words:del(wordsCounts[oneword])#排除需要排除的關(guān)鍵字#04輸出高頻詞和拼裝字符串new50word=''#空義一個(gè)變量newAllword=''.join(mywords)#拼接字符串:全文的分詞使用空格連接foriinrange(50):oneword,wordsCounts=items[i]new50word+=""+oneword#拼接字符串:只對(duì)前50個(gè)高頻詞使用空格連接print("{0:<10},{1:>5}".format(oneword,wordsCounts))#輸入高頻詞#06讀取圖片maskImage=imread('sampleMask.jpg')#圖片形狀#07生成詞云的系列操作excludewords={"11","日期","的","要","和","是"}#排除更多關(guān)鍵字,生成詞云w=wordcloud.WordCloud()w=wordcloud.WordCloud(background_color="white",\width=600,height=500,font_path="msyh.ttc",\stopwords=excludewords,maskImage=maskImage)#配置詞云調(diào)查參數(shù)w.generate(newAllword)#對(duì)全文的分詞生成詞云w.to_file("myAllWords.png")w.generate(new50word)#對(duì)50個(gè)高頻詞生成詞云w.to_file("my50Words.png")#08告訴用戶(hù)生成結(jié)果print("已經(jīng)生成詞云圖片,打開(kāi)項(xiàng)目文件夾根目錄可以查看。")input()3、參考答案及解析解析略4.實(shí)訓(xùn)心得體會(huì)實(shí)訓(xùn)任務(wù):用requests爬蟲(chóng)庫(kù)抓取百度首頁(yè)學(xué)校名稱(chēng):班級(jí)名稱(chēng):學(xué)號(hào)/工號(hào):學(xué)生姓名:實(shí)訓(xùn)日期:

1.實(shí)訓(xùn)目的了解requests爬蟲(chóng)庫(kù)的基本功能掌握requests爬蟲(chóng)庫(kù)的安裝方法掌握requests爬蟲(chóng)庫(kù)的基本功能熟練掌握requests爬蟲(chóng)庫(kù)下載指定的網(wǎng)站或者網(wǎng)頁(yè)2.實(shí)訓(xùn)環(huán)境普通電腦,并安裝以下軟件:Windows7(或者以上版本)操作系統(tǒng)PyCharm軟件Python3.8以上版本3.實(shí)訓(xùn)內(nèi)容任務(wù)一:抓取百度首頁(yè)1、任務(wù)內(nèi)容編寫(xiě)程序,應(yīng)用requests庫(kù)的get()方法,實(shí)現(xiàn)抓取百度首頁(yè)的信——并保存為newshtml.txt。要求關(guān)鍵代碼做好注釋?zhuān)Ч缦聢D所示2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼importrequests#使用requests的get()獲取網(wǎng)頁(yè)HTML代碼,并編碼r=requests.get('/')r.encoding='utf-8'#對(duì)中文進(jìn)行utf-8編碼,避免出現(xiàn)亂碼#寫(xiě)入本地文件#保存文件,如果newshtml.txt文件已經(jīng)存在,則會(huì)重寫(xiě)。#如果newshtml.txt文件不存在,則創(chuàng)建f=open('newshtml.txt',mode='w')f.writelines(r.text)#寫(xiě)入多行f.close()#關(guān)閉文件print('網(wǎng)頁(yè)抓取結(jié)束,并寫(xiě)入文件newshtml.txt成功')3、參考答案及解析解析略4.實(shí)訓(xùn)心得體會(huì)實(shí)訓(xùn)任務(wù):使用Beautifulsoup4解析百度網(wǎng)頁(yè)學(xué)校名稱(chēng):班級(jí)名稱(chēng):學(xué)號(hào)/工號(hào):學(xué)生姓名:實(shí)訓(xùn)日期:1.實(shí)訓(xùn)目的了解Beautifulsoup4庫(kù)的基本功能掌握Beautifulsoup4庫(kù)的安裝方法掌握Beautifulsoup4庫(kù)的基本功能熟練掌握Beautifulsoup4庫(kù)解析指定的網(wǎng)頁(yè),并抽取需要的信息2.實(shí)訓(xùn)環(huán)境普通電腦,并安裝以下軟件:Windows7(或者以上版本)操作系統(tǒng)PyCharm軟件Python3.8以上版本3.實(shí)訓(xùn)內(nèi)容任務(wù)一:使用beautifulsoup4進(jìn)行百度網(wǎng)頁(yè)解析1、任務(wù)內(nèi)容編寫(xiě)程序,對(duì)一段百度新聞首頁(yè)的源代碼,通過(guò)beautifulsoup4解析,把一些信息提取出來(lái)。以下是源代碼<htmlclass="expanded"><head><!--STATUSOK--><metahttp-equiv=Content-Typecontent="text/html;charset=utf-8"><metahttp-equiv="X-UA-Compatible"content="IE=Edge,chrome=1"><metacharset="utf-8"/><title>百度新聞——海量中文資訊平臺(tái)</title><metaname="description"content="百度新聞是包含海量資訊的新聞服務(wù)平臺(tái),真實(shí)反映每時(shí)每刻的新聞熱點(diǎn)。您可以搜索新聞事件、熱點(diǎn)話(huà)題、人物動(dòng)態(tài)、產(chǎn)品資訊等,快速了解它們的最新進(jìn)展。">提取網(wǎng)頁(yè)標(biāo)題、提取meta內(nèi)容、提取指定屬性獲取內(nèi)容要求關(guān)鍵代碼做好注釋?zhuān)Ч缦聢D所示2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼frombs4importBeautifulSoup#一段HTML代碼baiduhtml=""""<htmlclass="expanded"><head><!--STATUSOK--><metahttp-equiv=Content-Typecontent="text/html;charset=utf-8"><metahttp-equiv="X-UA-Compatible"content="IE=Edge,chrome=1"><metacharset="utf-8"/><title>百度新聞--海量中文資訊平臺(tái)</title><metaname="description"content="百度新聞是包含海量資訊的新聞服務(wù)平臺(tái),真實(shí)反映每時(shí)每刻的新聞熱點(diǎn)。您可以搜"""#創(chuàng)建BeautifulSoup對(duì)象soup=BeautifulSoup(baiduhtml,'lxml')#獲取title的整個(gè)標(biāo)簽和它的文字內(nèi)容print('01:',soup.title,soup.title.string)#獲取指定標(biāo)簽,獲取指定標(biāo)簽里面的內(nèi)容print('02:',soup('title'),soup('title')[0].string)#獲取指定標(biāo)簽也可以寫(xiě)成這樣#獲取meta標(biāo)簽的指定內(nèi)容或者首次出現(xiàn)整個(gè)meta標(biāo)簽print('03:',soup.meta.get('content'))#獲取指定標(biāo)簽的屬性print('04:',soup.meta)#獲取第一個(gè)標(biāo)簽(多個(gè)只取第一個(gè))print('05:',soup.find('meta'))#獲取第一個(gè)標(biāo)簽,結(jié)果和上面一樣#獲取指定屬性的meta標(biāo)簽和它的屬性?xún)?nèi)容print('06:',soup.find('meta',attrs={'name':'description'}))#獲取第一個(gè)標(biāo)簽,根據(jù)屬性過(guò)濾獲取#通過(guò)get()可以指定屬性獲取內(nèi)容print('07:',soup.find('meta',attrs={'name':'description'}).get('content'))3、參考答案及解析解析略任務(wù)二:使用beautifulsoup4的select()抓取百度的導(dǎo)航1、任務(wù)內(nèi)容編寫(xiě)程序,有一段百度新聞首頁(yè)的源代碼,通過(guò)beautifulsoup4的select()方法把網(wǎng)站的導(dǎo)航URL和導(dǎo)航文字解析出來(lái)。以下是源代碼<divid="channel-all"class="channel-allclearfix"><divclass="menu-list"><ulclass="clearfix"><liclass="navitem-indexcurrentactive"><ahref="/">首頁(yè)</a></li><li><ahref="/guonei">國(guó)內(nèi)</a></li><li><ahref="/guoji">國(guó)際</a></li><li><ahref="/mil">軍事</a></li><li><ahref="/finance">財(cái)經(jīng)</a></li><li><ahref="/ent">娛樂(lè)</a></li><li><ahref="/sports">體育</a></li><li><ahref="/internet">互聯(lián)網(wǎng)</a></li><li><ahref="/tech">科技</a></li><li><ahref="/game">游戲</a></li><li><ahref="/lady">女人</a></li><li><ahref="/auto">汽車(chē)</a></li><li><ahref="/house">房產(chǎn)</a></li></ul></div><iclass="slogan"></i></div>在BeautifulSoup對(duì)象的.select()方法中傳入字符串參數(shù),即可使用CSS選擇器的語(yǔ)法找到tag??梢詤⒖家韵翪SS選擇器的例子:soup.select('div')所有名為<div>的元素soup.select('#author')#帶有id屬性為author的元素soup.select('.notice')#所有使用CSSclass屬性名為notice的元素soup.select('divspan')#所有在<div>元素之內(nèi)的<span>元素soup.select('div>span')#所有直接在<div>元素之內(nèi)的<span>元素,中間沒(méi)有其他元素soup.select('input[name]')#所有名為<input>,并有一個(gè)name屬性,其值無(wú)所謂的元素soup.select('input[type="button"]')#所有名為<input>,并有一個(gè)type屬性,其值為button的元素要求關(guān)鍵代碼做好注釋?zhuān)Ч缦聢D所示2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼frombs4importBeautifulSouphtmlstr="""<divid="channel-all"class="channel-allclearfix"><divclass="menu-list"><ulclass="clearfix"><liclass="navitem-indexcurrentactive"><ahref="/">首頁(yè)</a></li><li><ahref="/guonei">國(guó)內(nèi)</a></li><li><ahref="/guoji">國(guó)際</a></li><li><ahref="/mil">軍事</a></li><li><ahref="/finance">財(cái)經(jīng)</a></li><li><ahref="/ent">娛樂(lè)</a></li><li><ahref="/sports">體育</a></li><li><ahref="/internet">互聯(lián)網(wǎng)</a></li><li><ahref="/tech">科技</a></li><li><ahref="/game">游戲</a></li><li><ahref="/lady">女人</a></li><li><ahref="/auto">汽車(chē)</a></li><li><ahref="/house">房產(chǎn)</a></li></ul></div><iclass="slogan"></i></div>"""#創(chuàng)建BeautifulSoup對(duì)象soup=BeautifulSoup(htmlstr,'lxml')print('抓取導(dǎo)航,實(shí)現(xiàn)方法1')foriteminsoup,select('div#channel-alla'):print(item.get('href'),item.string)print('抓取導(dǎo)航,實(shí)現(xiàn)方法2')foriteminsoup.select('ul.clearfixa'):print(item.get('href'),item.string)3、參考答案及解析解析略4.實(shí)訓(xùn)心得體會(huì)實(shí)訓(xùn)任務(wù):SQLite數(shù)據(jù)庫(kù)的使用——?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)表學(xué)校名稱(chēng):班級(jí)名稱(chēng):學(xué)號(hào)/工號(hào):學(xué)生姓名:實(shí)訓(xùn)日期:1.實(shí)訓(xùn)目的了解SQLite數(shù)據(jù)庫(kù)的基本功能掌握SQLite數(shù)據(jù)庫(kù)的安裝方法掌握SQLite數(shù)據(jù)庫(kù)的基本功能熟練掌握SQLite數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)表的方法2.實(shí)訓(xùn)環(huán)境普通電腦,并安裝以下軟件:Windows7(或者以上版本)操作系統(tǒng)PyCharm軟件Python3.8以上版本3.實(shí)訓(xùn)內(nèi)容任務(wù)一:使用sqlite3創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)表1、任務(wù)內(nèi)容編寫(xiě)程序,創(chuàng)建數(shù)據(jù)庫(kù)名稱(chēng)為“Student.db”,存放路徑為“D:\pythonBook\pythonProject10\SQLite3DB”。在數(shù)據(jù)庫(kù)“Student.db”中創(chuàng)建數(shù)據(jù)表為“tbuser”數(shù)據(jù)表“tbuser”的表結(jié)構(gòu)字段名稱(chēng)類(lèi)型備注IdIntId號(hào),主鍵,不為空UserCodeVARCHAR(20)用戶(hù)帳號(hào),不為空UserNameVARCHAR(20)用戶(hù)姓名,不為空要求關(guān)鍵代碼做好注釋?zhuān)褂胹qlitestudio軟件打開(kāi)db數(shù)據(jù)庫(kù),效果如下圖所示2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼importsqlite3conn=sqlite3.connect(r'D:pythonBookpythonProject10\soLite3DBstudent.db')#創(chuàng)建數(shù)據(jù)庫(kù)student.dbprint("數(shù)據(jù)庫(kù)Student.db創(chuàng)建成功")c=conn.cursor()#cursor()使用該連接創(chuàng)建(并返回)一個(gè)游標(biāo)對(duì)象c.execute('''CREATETABLEtbuser(IDINTPRIMARYKEYNOTNULL,UsercodeVARCHAR(20)NOTNULLUserNameVARCHAR(20)NOTNULL);''')#創(chuàng)建數(shù)據(jù)表tbuserprint("數(shù)據(jù)表tbuser創(chuàng)建成功")mit()#提交操作conn.close()#關(guān)閉Connection對(duì)象3、參考答案及解析解析略4.實(shí)訓(xùn)心得體會(huì)實(shí)訓(xùn)任務(wù):SQLite數(shù)據(jù)庫(kù)的使用——數(shù)據(jù)的增刪改查操作學(xué)校名稱(chēng):班級(jí)名稱(chēng):學(xué)號(hào)/工號(hào):學(xué)生姓名:實(shí)訓(xùn)日期:

1.實(shí)訓(xùn)目的了解SQLite數(shù)據(jù)庫(kù)的增加、查詢(xún)、修改和刪除的基本語(yǔ)法熟練掌握在SQLite數(shù)據(jù)庫(kù)中對(duì)數(shù)據(jù)表的增加、查詢(xún)、修改和刪除的方法2.實(shí)訓(xùn)環(huán)境普通電腦,并安裝以下軟件:Windows7(或者以上版本)操作系統(tǒng)PyCharm軟件Python3.8以上版本3.實(shí)訓(xùn)內(nèi)容任務(wù)一:使用sqlite3對(duì)數(shù)據(jù)進(jìn)行增、刪、改操作1、任務(wù)內(nèi)容編寫(xiě)程序,創(chuàng)建數(shù)據(jù)庫(kù)名稱(chēng)為“Student.db”,存放路徑為“D:\pythonBook\pythonProject10\SQLite3DB”。在數(shù)據(jù)庫(kù)“Student.db”中創(chuàng)建數(shù)據(jù)表為“tbuser”數(shù)據(jù)表“tbuser”的表結(jié)構(gòu)字段名稱(chēng)類(lèi)型備注IdIntId號(hào),主鍵,不為空UserCodeVARCHAR(20)用戶(hù)帳號(hào),不為空UserNameVARCHAR(20)用戶(hù)姓名,不為空測(cè)試數(shù)據(jù)IDuserCodeuserNameIDuserCodeuserName110001劉小紅610006金奇210002王小林710007周澤310003朱夢(mèng)810008朱秀娟410004金燁偉910009姜子文510005王婷1010010秦家興在數(shù)據(jù)庫(kù)中進(jìn)行數(shù)據(jù)的增加、刪除和修改操作,它的一般步驟如下:建立數(shù)據(jù)庫(kù)的連接。創(chuàng)建游標(biāo)對(duì)象。根據(jù)SQL的Insert,Delete和Update語(yǔ)句,使用Connection.execute(sql)執(zhí)行數(shù)據(jù)的增加、刪除和修改操作,并根據(jù)返回的值判斷操作結(jié)果。提交操作。關(guān)閉數(shù)據(jù)庫(kù)連接對(duì)象。對(duì)上面的測(cè)試數(shù)據(jù)進(jìn)行以下操作:刪除全部數(shù)據(jù)。插入一行數(shù)據(jù)。插入多行數(shù)據(jù),直至把全部數(shù)據(jù)插入到數(shù)據(jù)表中。使用executemany()可以把多條數(shù)據(jù)批量插入,批量的數(shù)據(jù)源可以來(lái)自列表。修改一行數(shù)據(jù)。要求關(guān)鍵代碼做好注釋?zhuān)褂密浖qlitestudio查看數(shù)據(jù),效果如下圖所示2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼importsqlite3conn=sqlite3.connect(r'D:pythonBookpythonProject10\sqLite3DB\student.db')#連接數(shù)據(jù)庫(kù)cur=conn.cursor()#創(chuàng)建游標(biāo)對(duì)象#刪除全部數(shù)據(jù)sqltxt0="deletefromtbuser"cur.execute(sqltxt0)print("成功刪除全部數(shù)據(jù)")#插入一行數(shù)據(jù)(第1種方法)sqltxt1="insertintotbuser(id,Usercode,UserName)values(1,'10001','劉小紅')"cur.execute(sqltxt1)print("成功插入一行數(shù)據(jù)(第1種方法)")#插入一行數(shù)據(jù)(第2種方法)sqltxt2="insertintotbuser(id,Usercode,UserName)values(?.?.?)"cur.execute(sqltxt2,(2,'10002''王小林'))print("成功插入一行數(shù)據(jù)(第2種方法)")#插入多行數(shù)據(jù)(第1種方法)sqltxt3="insertintotbuser(id,UserCode,UserName)values"\(3,'10003''朱夢(mèng)'),(4,'10004''金燁偉'),(5,'10005''王婷'),(6,'10006''金奇')"cur.execute(sqltxt3)print("成功插入多行數(shù)據(jù)(第1種方法)")#插入多行數(shù)據(jù)(第2種方法)userList=[(7,'10007''周澤')(8,'10008''朱秀娟')(9,'10009''姜子文')(10,'10010''秦家興')]sqltxt3="insertintotbuser(idUsercode,UserName)values(?,??)"cur.executemany(sqltxt3,userList)print("成功插入多行數(shù)據(jù)(第2種方法)")#修改一行數(shù)據(jù)sqltxt4="updatetbusersetUserName='劉麗紅'whereid=1"cur.execute(sqltxt4)print("成功修改一行數(shù)據(jù)")#劂除一行數(shù)據(jù)sqltxt5="deletefromtbuserwhereid=2"cur.execute(sqltxt5)print("成功刪除一行數(shù)據(jù)")mit()#提交操作conn.close()#關(guān)閉Connection對(duì)象3、參考答案及解析解析略任務(wù)二:使用sqlite3對(duì)數(shù)據(jù)進(jìn)行查詢(xún)操作1、任務(wù)內(nèi)容編寫(xiě)程序,按著上一題的要求,對(duì)數(shù)據(jù)表“tbuser”進(jìn)行查詢(xún)操作對(duì)上面的測(cè)試數(shù)據(jù)進(jìn)行以下操作:查詢(xún)?nèi)繑?shù)據(jù)。查詢(xún)ID=10的數(shù)據(jù)。要求關(guān)鍵代碼做好注釋?zhuān)Ч缦聢D所示2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼importsqlite3#連接數(shù)據(jù)庫(kù)conn=sqlite3.connect(r'D:\pythonBook\pythonProject10\sQLite3DB\student.db')cur=conn.cursor()#創(chuàng)建游標(biāo)對(duì)象#查詢(xún)?nèi)繑?shù)據(jù)sqltxt0="select*fromtbuser"cur.execute(sqltxt0)print("成功查詢(xún)?nèi)繑?shù)據(jù)")foroneincur:print('ID:',one[0])print('usercode:',one[1])print('UserName:',one[2])#查詢(xún)某個(gè)條件的數(shù)據(jù)sqltxt0="select*fromtbuserwhereid=10"cur.execute(sqltxt0)print("成功査詢(xún)id=10的數(shù)據(jù)")foroneincur:print(one)conn.close()#關(guān)閉Connection對(duì)象3、參考答案及解析解析略4.實(shí)訓(xùn)心得體會(huì)實(shí)訓(xùn)任務(wù):Python對(duì)Access數(shù)據(jù)庫(kù)的訪問(wèn)學(xué)校名稱(chēng):班級(jí)名稱(chēng):學(xué)號(hào)/工號(hào):學(xué)生姓名:實(shí)訓(xùn)日期:

1.實(shí)訓(xùn)目的了解Python對(duì)Access數(shù)據(jù)庫(kù)的訪問(wèn)的基本語(yǔ)法基本掌握ACCESS數(shù)據(jù)庫(kù)的創(chuàng)新、打開(kāi)和查看操作熟練掌握Python對(duì)Access數(shù)據(jù)庫(kù)的訪問(wèn)的方法熟練掌握使用pyodbc.drivers()查詢(xún)本機(jī)支持的ODBC驅(qū)動(dòng)程序的方法掌握安裝pyodbc庫(kù)的方法2.實(shí)訓(xùn)環(huán)境普通電腦,并安裝以下軟件:Windows7(或者以上版本)操作系統(tǒng)PyCharm軟件Python3.8以上版本3.實(shí)訓(xùn)內(nèi)容任務(wù)一:查詢(xún)本機(jī)支持的ODBC驅(qū)動(dòng)程序1、任務(wù)內(nèi)容安裝pyodbc庫(kù)引入pyodbc庫(kù)后,使用pyodbc.drivers()查詢(xún)到當(dāng)前電腦支持的ODBC驅(qū)動(dòng)程序要求關(guān)鍵代碼做好注釋?zhuān)Ч缦聢D所示2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼importpyodbc#引入pyodbc庫(kù)#把支持的驅(qū)動(dòng)程序保存在變量txt中txt=pyodbc.drivers()#把變量txt轉(zhuǎn)換為列表driversList=list(txt)#遍歷列表,打印出每一個(gè)驅(qū)動(dòng)程序foritemindriversList:print(item)3、參考答案及解析安裝pyodbc,直接使用pip可以安裝,代碼如下:pipinstallpyodbc解析略任務(wù)二:Access數(shù)據(jù)庫(kù)的訪問(wèn)1、任務(wù)內(nèi)容編寫(xiě)程序?qū)崿F(xiàn)以下操作:現(xiàn)有一個(gè)ACCESS數(shù)據(jù)庫(kù)名稱(chēng)為“student.mdb”,它里面有一個(gè)樣表“tbuser”,如圖所示。要求使用Python讀取表“tbuser”的數(shù)據(jù)。要求關(guān)鍵代碼做好注釋?zhuān)Ч缦聢D所示2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼importpyodbcimportosDBfile=os.path.dirname(os.path.realpath(__file__))+"/student.mdb"#ACCESS數(shù)據(jù)庫(kù)文件路徑print(DBfile)#輸出數(shù)據(jù)庫(kù)的路徑#連接數(shù)據(jù)庫(kù)(不需要配置數(shù)據(jù)源),connect()函數(shù)創(chuàng)建并返回一個(gè)Connection對(duì)象connectstring=r"DRIVER={MicrosoftAccessDriver(*,mdb,*.accdb)};DBg="+DBfile+".Uid=;Pwd=;"conn=pyodbc.connect(connectstring)#cursor()使用該連接創(chuàng)建(并返回)一個(gè)游標(biāo)或類(lèi)游標(biāo)的對(duì)象cursor=conn.cursor()#定義一個(gè)SQL查詢(xún)語(yǔ)句,查詢(xún)表tbuser的中全部數(shù)據(jù)SOL="SELECT*fromtbuser;"#使用循壞,讀取表userforrowincursor.execute(SQL):print(row)cursor.close()#關(guān)閉游標(biāo)conn.close()#關(guān)閉數(shù)據(jù)庫(kù)連接3、參考答案及解析解析略4.實(shí)訓(xùn)心得體會(huì)實(shí)訓(xùn)任務(wù):Python對(duì)Excel數(shù)據(jù)表的訪問(wèn)學(xué)校名稱(chēng):班級(jí)名稱(chēng):學(xué)號(hào)/工號(hào):學(xué)生姓名:實(shí)訓(xùn)日期:

1.實(shí)訓(xùn)目的了解Python對(duì)Excel數(shù)據(jù)表的訪問(wèn)的基本語(yǔ)法基本掌握Excel數(shù)據(jù)表的創(chuàng)建、打開(kāi)和查看操作熟練掌握Python對(duì)Excel數(shù)據(jù)表的訪問(wèn)的方法2.實(shí)訓(xùn)環(huán)境普通電腦,并安裝以下軟件:Windows7(或者以上版本)操作系統(tǒng)PyCharm軟件Python3.8以上版本3.實(shí)訓(xùn)內(nèi)容任務(wù)一:Excel數(shù)據(jù)表的訪問(wèn)1、任務(wù)內(nèi)容編寫(xiě)程序?qū)崿F(xiàn)以下操作:現(xiàn)有一個(gè)Excel數(shù)據(jù)表名稱(chēng)為“student.xls”,它里面有一個(gè)樣表“tbuser”,如圖所示。要求使用Python讀取表“tbuser”的數(shù)據(jù)。要求關(guān)鍵代碼做好注釋?zhuān)Ч缦聢D所示2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼importpyodbcimportos#student.xls文件路徑信息DBfile=os.path.dirname(os.path.realpath(__file__))+"/student.xls"print(DBfile)#輸出數(shù)據(jù)庫(kù)的路徑#r表示非轉(zhuǎn)義的原始字符串connStr=r'DRIVER=iMicrosoftExcelDriver(*,xls,*.xlsx,*.xlsm,*,xlsb)}:DB0=%s''%DBfil#創(chuàng)建連接connconn=pyodbc.connect(connStr,autocommit=True)#創(chuàng)建游標(biāo)對(duì)象cursor=conn.cursor()#注意EXCEL中字段名和表名的寫(xiě)法sql='select*from[tbuser$]'#執(zhí)行sqlreadExcelDataSet=cursor.execute(sql)#用for循環(huán)遍歷forrowinreadExcelDataSet:print(row)3、參考答案及解析解析略4.實(shí)訓(xùn)心得體會(huì)實(shí)訓(xùn)任務(wù):Python對(duì)SQLServer數(shù)據(jù)庫(kù)的訪問(wèn)學(xué)校名稱(chēng):班級(jí)名稱(chēng):學(xué)號(hào)/工號(hào):學(xué)生姓名:實(shí)訓(xùn)日期:

1.實(shí)訓(xùn)目的了解Python對(duì)SQLServer數(shù)據(jù)庫(kù)的訪問(wèn)的基本語(yǔ)法基本掌握SQLServer數(shù)據(jù)庫(kù)和數(shù)據(jù)表的創(chuàng)建、打開(kāi)和查看操作熟練掌握Python對(duì)SQLServer數(shù)據(jù)庫(kù)的訪問(wèn)的方法2.實(shí)訓(xùn)環(huán)境普通電腦,并安裝以下軟件:Windows7(或者以上版本)操作系統(tǒng)PyCharm軟件Python3.8以上版本3.實(shí)訓(xùn)內(nèi)容任務(wù)一:SQLServer數(shù)據(jù)庫(kù)的訪問(wèn)1、任務(wù)內(nèi)容編寫(xiě)程序?qū)崿F(xiàn)以下操作:現(xiàn)有一個(gè)SQLServer數(shù)據(jù)庫(kù)名稱(chēng)為“student”,它里面有一個(gè)樣表“tbuser”,如圖所示。要求使用Python讀取表“tbuser”的數(shù)據(jù)。要求關(guān)鍵代碼做好注釋?zhuān)Ч缦聢D所示2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼importpyodbc#連接數(shù)據(jù)庫(kù)(不需要配置數(shù)據(jù)源),connect()的數(shù)創(chuàng)建并返回一個(gè)Connection對(duì)象connectstring=r"DRIVER={oDBcDriver17forsoLserver};"r"SERVER=localhost:DATABASE=Student;uID=python;PwD=python123"conn=pyodbc.connect(connectstring)print(connectstring)#設(shè)貿(mào)編碼格式conn.setencoding(encoding='utf-8')#cursor()使用該連接創(chuàng)建(并返回)一個(gè)游標(biāo)或類(lèi)游標(biāo)的對(duì)象cursor=conn.cursor()#定義一個(gè)SQL查詢(xún)語(yǔ)句,查詢(xún)表user的中全部數(shù)據(jù)cursor.execute('select*fromtbuser')rows=cursor.fetchall()#使用循環(huán),讀取表userforrowinrows:print(row)#關(guān)閉游標(biāo)cursor.close()conn.close()#關(guān)閉數(shù)據(jù)庫(kù)連接3、參考答案及解析解析略4.實(shí)訓(xùn)心得體會(huì)實(shí)訓(xùn)任務(wù):新聞網(wǎng)頁(yè)爬蟲(chóng)項(xiàng)目學(xué)校名稱(chēng):班級(jí)名稱(chēng):學(xué)號(hào)/工號(hào):學(xué)生姓名:實(shí)訓(xùn)日期:

1.實(shí)訓(xùn)目的了解Python對(duì)SQLServer數(shù)據(jù)庫(kù)的訪問(wèn)的基本語(yǔ)法基本掌握SQLite創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)表的方法熟練掌握使用requests庫(kù)抓取網(wǎng)頁(yè)的方法熟練掌握使用Beautifulsoup4解析網(wǎng)頁(yè)的方法熟練掌握使用Beautifulsoup4提取有用的信息的方法熟練掌握編寫(xiě)自定義函數(shù)和調(diào)用函數(shù)的方法基本掌握編寫(xiě)測(cè)試代碼,驗(yàn)證測(cè)試數(shù)據(jù)表是否已經(jīng)正確保存抓取的網(wǎng)頁(yè)數(shù)據(jù)2.實(shí)訓(xùn)環(huán)境普通電腦,并安裝以下軟件:Windows7(或者以上版本)操作系統(tǒng)PyCharm軟件Python3.8以上版本3.實(shí)訓(xùn)內(nèi)容任務(wù)一:新聞網(wǎng)頁(yè)爬蟲(chóng)項(xiàng)目1、任務(wù)內(nèi)容編寫(xiě)程序?qū)崿F(xiàn)以下操作。背景如下:在十九屆中共中央政治局第二次集體學(xué)習(xí)時(shí),習(xí)總書(shū)記的重要講話(huà)中指出“大數(shù)據(jù)是信息化發(fā)展的新階段”。大數(shù)據(jù)與網(wǎng)絡(luò)爬蟲(chóng)技術(shù)密不可分。網(wǎng)絡(luò)爬蟲(chóng)(又被稱(chēng)為網(wǎng)頁(yè)蜘蛛,網(wǎng)絡(luò)機(jī)器人),是一種按照一定的規(guī)則,自動(dòng)地抓取萬(wàn)維網(wǎng)信息的程序或者腳本。網(wǎng)絡(luò)爬蟲(chóng)系統(tǒng)正是通過(guò)網(wǎng)頁(yè)中的超鏈接信息不斷獲得網(wǎng)絡(luò)上的其他網(wǎng)頁(yè)的。百度新聞()由百度爬蟲(chóng)機(jī)器人選取每5分鐘自動(dòng)更新,它的搜索源于互聯(lián)網(wǎng)新聞網(wǎng)站和頻道,系統(tǒng)自動(dòng)分類(lèi)排序。某公司做一個(gè)新聞采集項(xiàng)目時(shí),希望研究百度新聞中的新聞信息,用Python寫(xiě)一個(gè)網(wǎng)頁(yè)爬蟲(chóng)把百度新聞的新聞抓取下來(lái),并存入數(shù)據(jù)庫(kù)中,以作實(shí)驗(yàn)學(xué)習(xí)用。它的主要實(shí)施步驟,參考如下:1)分析網(wǎng)頁(yè)HTML代碼,選擇抓取的入口。2)創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)表。3)編寫(xiě)爬蟲(chóng)解析函數(shù)和數(shù)據(jù)保存函數(shù)等自定義函數(shù),以供程序調(diào)用。4)編寫(xiě)程序入口,調(diào)用自定義函數(shù)進(jìn)行網(wǎng)頁(yè)的抓取。5)編寫(xiě)測(cè)試代碼,測(cè)試數(shù)據(jù)表是否已經(jīng)正確保存抓取的網(wǎng)頁(yè)數(shù)據(jù)。設(shè)計(jì)數(shù)據(jù)庫(kù)和數(shù)據(jù)表設(shè)計(jì)數(shù)據(jù)庫(kù)名稱(chēng)為web.db,創(chuàng)建一個(gè)數(shù)據(jù)表為tbnews。數(shù)據(jù)表結(jié)構(gòu)如下表。其中對(duì)新聞標(biāo)題生成MD5值,用于輔助去重。tbnews數(shù)據(jù)表的表結(jié)構(gòu)序號(hào)字段類(lèi)型要求中文含義1IDINTEGER主鍵,自增值。ID號(hào)2newsTitleVarchar(100)新聞標(biāo)題3newsURLVarchar(100)新聞URL4logDatetimedatetime默認(rèn)為服務(wù)器時(shí)間。抓取時(shí)間5newsURLMd5Varchar(32)新聞URL的MD56newsTypeVarchar(20)新聞分類(lèi)要求關(guān)鍵代碼做好注釋?zhuān)Ч缦聢D所示2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼importsqlite3

#創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)表

#conn=sqlite3.connect(r'D:\pythonBook\pythonProject12\project12-2\web.db')#創(chuàng)建數(shù)據(jù)庫(kù)Student.db

conn=sqlite3.connect(r'web.db')#創(chuàng)建數(shù)據(jù)庫(kù)Student.db

print("數(shù)據(jù)庫(kù)student.db創(chuàng)建成功")

c=conn.cursor()#cursor()使用該連接創(chuàng)建(并返回)一個(gè)游標(biāo)對(duì)象

c.execute('''

CREATETABLEtbnews

(IDINTEGERPRIMARYKEYNOTNULL,

newsTitleVARCHAR(200)NOTNULL.

newsURLVARCHAR(200)NOTNULL.

logDatetimedatetimedefault(datetime('now',"localtime'))NOTNULL

newsURLMd5VARCHAR(32)NOTNULL.

newTypeVARCHAR(20)NOTNULL

);''')#創(chuàng)建數(shù)據(jù)表tbnews

print("數(shù)據(jù)表tbnews創(chuàng)建成功")

mit()#提交操作

conn.close()#關(guān)閉Connection對(duì)象3、參考答案及解析第一步:在PyCharm軟件中新建Python文件“CreateDatabase.py”,輸入以下代碼并運(yùn)行它,即可以完成數(shù)據(jù)表的創(chuàng)建。第二步:編寫(xiě)爬蟲(chóng)解析函數(shù)。在PyCharm軟件中新建Python文件“baiduNews.py”第三步:為了驗(yàn)證數(shù)據(jù)表是否已經(jīng)成功保存抓取的網(wǎng)頁(yè)數(shù)據(jù),新建一個(gè)文件checkTable.py,并編寫(xiě)查詢(xún)數(shù)據(jù)表的代碼以驗(yàn)證。解析略4.實(shí)訓(xùn)心得體會(huì)實(shí)訓(xùn)任務(wù):使用matplotlib庫(kù)生成圖表學(xué)校名稱(chēng):班級(jí)名稱(chēng):學(xué)號(hào)/工號(hào):學(xué)生姓名:實(shí)訓(xùn)日期:1.實(shí)訓(xùn)目的了解matplotlib庫(kù)的訪問(wèn)的基本語(yǔ)法基本掌握matplotlib庫(kù)創(chuàng)建柱形圖和餅圖、3D圖和條形圖的方法2.實(shí)訓(xùn)環(huán)境普通電腦,并安裝以下軟件:Windows7(或者以上版本)操作系統(tǒng)PyCharm軟件Python3.8以上版本3.實(shí)訓(xùn)內(nèi)容任務(wù)一:使用matplotlib生成柱形圖1、任務(wù)內(nèi)容編寫(xiě)程序?qū)崿F(xiàn)以下操作:使用matplotlib生成柱形圖,數(shù)據(jù)可以自定義。要求關(guān)鍵代碼做好注釋?zhuān)Ч缦聢D所示2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼frommatplotlibimportpyplotasplt

#支持中文

plt.rcParams['font.sans-serif']=['SimHei']#用來(lái)正常顯示中文標(biāo)簽

plt.rcParams['axes.unicodeminus']=False#用來(lái)正常顯示負(fù)號(hào)

x=['小王''小陳''小張''小軍''小牛''小紅']#X軸的值

y=[92,86,66,76,80,50]#Y軸的值,數(shù)量與X軸的數(shù)量一致

plt.bar(x,y,align='center')#bar表示柱形圖

plt.title('學(xué)生成績(jī)統(tǒng)計(jì)圖')#圖表標(biāo)題

plt.ylabel('Y軸')#Y軸

plt.xlabel('X軸')#X軸

plt.show()3、參考答案及解析解析略任務(wù)二:使用matplotlib生成餅圖1、任務(wù)內(nèi)容編寫(xiě)程序?qū)崿F(xiàn)以下操作:使用matplotlib生成餅圖,數(shù)據(jù)可以自定義。要求關(guān)鍵代碼做好注釋?zhuān)Ч缦聢D所示2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼importmatplotlib.pyplotasplt

#Piechart,wherethesliceswillbeorderedandplottedcounter-clockwise:

labels='Frogs',"Hogs','Dogs','Logs'"

sizes=[15,30,45,10]

explode=(0,0.1,0,0)#only")explode"the2ndslice(i.e.'Hogs')

fig1,ax1=plt.subplots()

ax1.pie(sizes,explode=explode,labels=labels,autopct='%1.1f%%',

shadow=True,startangle=90)

ax1.axis('equal')#Equalaspectratioensuresthatpieisdrawnasacircle.

plt.show()3、參考答案及解析解析略任務(wù)三:使用matplotlib生成組合柱形圖1、任務(wù)內(nèi)容編寫(xiě)程序?qū)崿F(xiàn)以下操作:使用matplotlib生成組合柱形圖,數(shù)據(jù)可以自定義。要求關(guān)鍵代碼做好注釋?zhuān)Ч缦聢D所示2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼importnumpyasnp

importmatplotlib.pyplotasplt

men_means,men_std=(20,35,30,35,27),(2,3,4,1,2)

women_means,women_std=(25,32,34,20,25),(3,5,2,3,3)

ind=np.arange(len(men_means))#thexlocationsforthegroups

width=0.35#thewidthofthebars

fig,ax=plt.subplots()

rects1=ax.bar(ind-width/2,men_means,width,yerr=men_std,

color='SkyBlue',label='Men')

rects2=ax.bar(ind+width/2,women_means,width,yerr=women_std,

color='IndianRed',label='Women')

#Addsometextforlabels,titleandcustomx-axisticklabels,etc.

ax.set_ylabel('Scores')

ax.set_title('Scoresbygroupandgender')

ax.setxticks(ind)

ax.set_xticklabels(('G1','G2','G3','G4','G5'))

ax.legend()

defautolabel(rects,xpos='center'):

"""

Attachatextlabelaboveeachbarin*rects*,displayingitsheight.

*xpos*indicateswhichsidetoplacethetextw.r.t.thecenterof

thebar.Itcanbeoneofthefollowing{'center','right','left'}

"""

xpos=xpos.lower()#normalizethecaseoftheparameter

ha={'center':'center','right':'left','left':'right'}

offset={'center':0.5,'right':0.57,'left':0.43}#x_txt=x+w*off

forrectinrects:

height=rect.getheight()

ax.text(rect.get_x()+rect.get_width()*offset[xpos],1.01*height

'{}'.format(height),ha=ha[xpos],va='bottom')

autolabel(rects1,"left")

autolabel(rects2,"right")

plt.show()3、參考答案及解析解析略任務(wù)四:使用matplotlib生成三維曲面圖1、任務(wù)內(nèi)容編寫(xiě)程序?qū)崿F(xiàn)以下操作:使用matplotlib生成三維曲面圖,數(shù)據(jù)可以自定義。要求關(guān)鍵代碼做好注釋?zhuān)Ч缦聢D所示2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼frommpl_toolkits.mplot3dimportAxes3D#noqa:F401unusedimport

importmatplotlib.pyplotasplt

frommatplotlibimportcm

frommatplotlib.tickerimportLinearLocator,FormatStrFormatter

importnumpyasnp

fig=plt.figure()

ax=fig.gca(projection='3d')

#Makedata.

X=np.arange(-5,5,0.25)

Y=np.arange(-5,5,0.25)

X,Y=np.meshgrid(X,Y)

R=np.sqrt(X**2+Y**2)

Z=np.sin(R)

#Plotthesurface.

surf=ax.plot_surface(X,Y,2,cmap=cm.coolwarm,

linewidth=0,antialiased=False)

#Customizethezaxis

ax.set_zlim(-1.01,1.01)

ax.zaxis.set_major_locator(LinearLocator(10))

ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))

#Addacolorbarwhichmapsvalvestocolors.

fig.colorbar(surf,shrink=0.5,aspect=5)

plt.show()3、參考答案及解析解析略4.實(shí)訓(xùn)心得體會(huì)實(shí)訓(xùn)任務(wù):使用MyQR生成二維碼學(xué)校名稱(chēng):班級(jí)名稱(chēng):學(xué)號(hào)/工號(hào):學(xué)生姓名:實(shí)訓(xùn)日期:1.實(shí)訓(xùn)目的了解MyQR庫(kù)的訪問(wèn)的基本語(yǔ)法基本掌握MyQR庫(kù)創(chuàng)建普通二維碼和帶圖片的二維碼、帶GIF動(dòng)圖二維碼的方法2.實(shí)訓(xùn)環(huán)境普通電腦,并安裝以下軟件:Windows7(或者以上版本)操作系統(tǒng)PyCharm軟件Python3.8以上版本3.實(shí)訓(xùn)內(nèi)容任務(wù)一:使用MyQR庫(kù)創(chuàng)建普通二維碼1、任務(wù)內(nèi)容編寫(xiě)程序?qū)崿F(xiàn)以下操作:普通二維碼,數(shù)據(jù)內(nèi)容可以自定義。要求關(guān)鍵代碼做好注釋?zhuān)Ч缦聢D所示2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼fromMyQRimportmyqr#導(dǎo)入庫(kù)

myqr.run(

words='/',#二維碼的內(nèi)容

colorized=True#是否有顏色,如果為False則為黑自

save_name='code.png'#輸出文件名

)

print('二維碼已經(jīng)生成。請(qǐng)打開(kāi)文件夾查看。")3、參考答案及解析解析略任務(wù)二:使用MyQR庫(kù)創(chuàng)建帶背景圖的二維碼1、任務(wù)內(nèi)容編寫(xiě)程序?qū)崿F(xiàn)以下操作:創(chuàng)建一個(gè)帶有背景圖的二維碼,數(shù)據(jù)內(nèi)容可以自定義。以下是參考背景。要求關(guān)鍵代碼做好注釋?zhuān)Ч缦聢D所示2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼#導(dǎo)入庫(kù)fromMyORimportmyqr

myqr.run(

words='/',#二維碼的內(nèi)容

picture=r'logo.jpg',#logo圖片,也可以其官圖片

colorized=True,#是否有顏色,如果為False則為黑自

save_name='code_logo.png'#輸出文件名

)

print('二維碼已經(jīng)生成。請(qǐng)打開(kāi)文件夾查看。')3、參考答案及解析解析略任務(wù)三:使用MyQR庫(kù)創(chuàng)建帶gif動(dòng)圖的二維碼1、任務(wù)內(nèi)容編寫(xiě)程序?qū)崿F(xiàn)以下操作:創(chuàng)建一個(gè)帶有背景圖的二維碼,數(shù)據(jù)內(nèi)容可以自定義。以下是參考GIF圖。要求關(guān)鍵代碼做好注釋?zhuān)Ч缦聢D所示2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼fromMyQRimportmyqr#導(dǎo)入庫(kù)

myqr.run(

words='/',#二維碼的內(nèi)容

picture=r'katong.gif',#qif圖片,也可以其它官圖片

colorized=True,#是否有顏色,如果為False則為黑

save_name='code_katong.gif'#輸出文件名

)

print('二維碼已經(jīng)生成。請(qǐng)打開(kāi)文件夾查看。')3、參考答案及解析解析略任務(wù)四:使用matplotlib生成三維曲面圖1、任務(wù)內(nèi)容編寫(xiě)程序?qū)崿F(xiàn)以下操作:使用matplotlib生成三維曲面圖,數(shù)據(jù)可以自定義。要求關(guān)鍵代碼做好注釋?zhuān)Ч缦聢D所示2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼

frommpl_toolkits.mplot3dimportAxes3D#noqa:F401unusedimport

importmatplotlib.pyplotasplt

frommatplotlibimportcm

frommatplotlib.tickerimportLinearLocator,FormatStrFormatter

importnumpyasnp

fig=plt.figure()

ax=fig.gca(projection='3d')

#Makedata.

X=np.arange(-5,5,0.25)

Y=np.arange(-5,5,0.25)

X,Y=np.meshgrid(X,Y)

R=np.sqrt(X**2+Y**2)

Z=np.sin(R)

#Plotthesurface.

surf=ax.plot_surface(X,Y,2,cmap=cm.coolwarm,

linewidth=0,antialiased=False)

#Customizethezaxis

ax.set_zlim(-1.01,1.01)

ax.zaxis.set_major_locator(LinearLocator(10))

ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))

#Addacolorbarwhichmapsvalvestocolors.

fig.colorbar(surf,shrink=0.5,aspect=5)

plt.show()3、參考答案及解析解析略4.實(shí)訓(xùn)心得體會(huì)實(shí)訓(xùn)任務(wù):商品統(tǒng)計(jì)圖和二維碼項(xiàng)目學(xué)校名稱(chēng):班級(jí)名稱(chēng):學(xué)號(hào)/工號(hào):學(xué)生姓名:實(shí)訓(xùn)日期:1.實(shí)訓(xùn)目的基本掌握matplotlib庫(kù)的基本語(yǔ)法,會(huì)生成統(tǒng)計(jì)圖基本掌握MyQR庫(kù)創(chuàng)建普通二維碼和帶圖片的二維碼、帶GIF動(dòng)圖二維碼的方法能綜合使用matplotlib庫(kù)和MyQR庫(kù)進(jìn)行項(xiàng)目的開(kāi)發(fā)2.實(shí)訓(xùn)環(huán)境普通電腦,并安裝以下軟件:Windows7(或者以上版本)操作系統(tǒng)PyCharm軟件Python3.8以上版本3.實(shí)訓(xùn)內(nèi)容任務(wù)一:商品統(tǒng)計(jì)圖和二維碼項(xiàng)目1、任務(wù)內(nèi)容背景如下某商家開(kāi)發(fā)了在線網(wǎng)上商城平臺(tái),為了配合網(wǎng)上電子商務(wù)業(yè)務(wù)的開(kāi)展,需要對(duì)大量的商品實(shí)時(shí)地自動(dòng)地和批量地生成二維碼圖,以支持線上和線下的營(yíng)銷(xiāo)活動(dòng);并要求對(duì)商品的統(tǒng)計(jì)數(shù)據(jù)自動(dòng)生成統(tǒng)計(jì)圖,以可視化的視角為商家提供數(shù)據(jù)參考。主要步驟如下本項(xiàng)目可以用Python語(yǔ)言的matplotlib庫(kù)實(shí)時(shí)自動(dòng)生成統(tǒng)計(jì)圖,采用MyQR庫(kù)自動(dòng)生成商品的二維碼圖片。它的主要實(shí)施步驟為:1)從數(shù)據(jù)庫(kù)中獲取商品數(shù)據(jù)的信息。2)對(duì)商品的信息生成二維碼圖并保存在硬盤(pán)中。3)對(duì)商品的統(tǒng)計(jì)數(shù)據(jù)實(shí)時(shí)生成統(tǒng)計(jì)圖。4)驗(yàn)證程序結(jié)果。數(shù)據(jù)表結(jié)構(gòu)如下以下是待導(dǎo)入的數(shù)據(jù)以下是導(dǎo)入后的數(shù)據(jù)效果要求關(guān)鍵代碼做好注釋?zhuān)Ч缦聢D所示2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼#1)從數(shù)據(jù)庫(kù)中獲取商品數(shù)據(jù)的信息。

#2)對(duì)商品的信息生成二維碼圖并保存在硬盤(pán)中。

#3)對(duì)商品的統(tǒng)計(jì)數(shù)據(jù)實(shí)時(shí)生成統(tǒng)計(jì)圖。

importsqlite3

importos

frommatplotlibimportpyplotasplt

fromMyQRimportmyqr

conn=sqlite3.connect(r'webshop.db'#連接數(shù)據(jù)庫(kù)

cur=conn.cursor()#創(chuàng)建游標(biāo)對(duì)象

#查詢(xún)?nèi)繑?shù)據(jù)

sqltxt1=("select*fromproductsorderbyiddesc"

cur.execute(sqltxt1))

#對(duì)商品的信息生成二維碼圖并保存在硬盤(pán)中

print("成功查詢(xún)10條數(shù)據(jù)")

foroneincur:

#print(one)可以打印當(dāng)前的一條數(shù)據(jù)

#如果文件夾不存在,則創(chuàng)建文件夾

dirpicture=os.getcwd()+"lpicture'

isExists=os.path.exists(dirpicture)

ifnotisExists:

os.makedirs(dirpicture)

#生成二維碼,并指定保存路徑

myqr.run(

words=one[6],#二維碼的內(nèi)容,以產(chǎn)品的URL為內(nèi)容

colorized=True,#是否有顏色,如果為False則為黑白

save_name=one[1]+'.png',#輸出文件名,以產(chǎn)品代碼為名

save_dir=dirpicture#輸出路徑

)

#對(duì)商品的統(tǒng)計(jì)數(shù)據(jù)實(shí)時(shí)生成統(tǒng)計(jì)圖

sqltxt2="selectstrftime('%Y'logDate)asyear,strftime('%m',logDate)asmonth,sum(productMoney)"\

"fromproductswherestrftime('%Y',logDate)isnotnull"\

"groupbystrftime('%Y',logDate),strftime('%m',logDate)"

cur.execute(sqltxt2)

#構(gòu)造X軸和Y軸的數(shù)組

x_list=[]

y_list=[]

foritemincur:

x_list.append(item[0]+'-'+item[1])

y_list.append(item[2])

#print(x_list)

#print(y_list)

#生成統(tǒng)計(jì)圖并支持中文

plt.rcParams['font.sans-serif']=['SimHei']#用來(lái)正常顯示中文標(biāo)簽

plt.rcParams['axes.unicode_minus']=False#用來(lái)正常顯示負(fù)號(hào)

plt.bar(x_list,y_list,align='center')#bar表示柱形圖

plt.title('商口月份銷(xiāo)售統(tǒng)計(jì)圖')#圖表標(biāo)題

plt.ylabel('銷(xiāo)售金額')#Y軸

plt.xlabel('銷(xiāo)售月份')#X軸

plt.show()

conn.close()#關(guān)閉Connection對(duì)象3、參考答案及解析解析略4.實(shí)訓(xùn)心得體會(huì)實(shí)訓(xùn)任務(wù):定位圖片中所有人臉,并自動(dòng)生成人臉圖片保存在本地學(xué)校名稱(chēng):班級(jí)名稱(chēng):學(xué)號(hào)/工號(hào):學(xué)生姓名:實(shí)訓(xùn)日期:

1.實(shí)訓(xùn)目的基本掌握f(shuō)ace_locations庫(kù)的基本語(yǔ)法基本掌握PIL庫(kù)對(duì)圖片的操作能綜合運(yùn)用OS庫(kù)對(duì)文件夾進(jìn)行操作能綜合使用face_locations庫(kù)、PIL庫(kù)和OS庫(kù)進(jìn)行定位圖片中所有人臉,并自動(dòng)生成人臉圖片保存在本地2.實(shí)訓(xùn)環(huán)境普通電腦,并安裝以下軟件:Windows7(或者以上版本)操作系統(tǒng)PyCharm軟件Python3.8以上版本3.實(shí)訓(xùn)內(nèi)容任務(wù)一:定位圖片中所有人臉,并自動(dòng)生成人臉圖片保存在本地.1、任務(wù)內(nèi)容背景如下給出學(xué)生圖片student.jpg,自動(dòng)識(shí)別出圖片中的人臉。原圖效果如圖9-14所示。說(shuō)明:出于印刷和版權(quán)的考慮,素材中的人像圖片都后期加了馬賽克,原圖并沒(méi)有馬賽克。主要步驟如下第1步:人臉定位第2步:判斷文件夾是否存在,不存在則創(chuàng)建文件夾第3步:遍歷,自動(dòng)截取的人臉圖并保存要求關(guān)鍵代碼做好注釋?zhuān)Ч缦聢D所示2、任務(wù)提交要求提交任務(wù)運(yùn)行的截圖,放在下面提交任務(wù)的代碼importface_recognition

fromPILimportImage

importos

#第1步:人臉定位

print('正在識(shí)別中...')

image=face_recognition.load_image_file("student.jpg",mode='RGB')#加載圖片文件

#face_locations:以列表形式返回圖片中的所有人臉的位置數(shù)組(top,right,bottom,left)

face_locations=face_recognition.face_locations(image,model="cnn")#

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論