大數(shù)據(jù)采集與預處理課件:requests技術應用案例-業(yè)務網(wǎng)站B靜態(tài)數(shù)據(jù)采集2_第1頁
大數(shù)據(jù)采集與預處理課件:requests技術應用案例-業(yè)務網(wǎng)站B靜態(tài)數(shù)據(jù)采集2_第2頁
大數(shù)據(jù)采集與預處理課件:requests技術應用案例-業(yè)務網(wǎng)站B靜態(tài)數(shù)據(jù)采集2_第3頁
大數(shù)據(jù)采集與預處理課件:requests技術應用案例-業(yè)務網(wǎng)站B靜態(tài)數(shù)據(jù)采集2_第4頁
大數(shù)據(jù)采集與預處理課件:requests技術應用案例-業(yè)務網(wǎng)站B靜態(tài)數(shù)據(jù)采集2_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

綜合案例——爬取業(yè)務網(wǎng)站B

本章學習目標分析豆瓣電影Top250的網(wǎng)頁結構和內容使用requests庫編寫爬蟲代碼獲取指定的靜態(tài)數(shù)據(jù)使用BeautifulSoup實現(xiàn)從網(wǎng)頁中提取數(shù)據(jù)使用pymysql庫實現(xiàn)數(shù)據(jù)的持久化4.4.3數(shù)據(jù)持久化存儲

為了保證數(shù)據(jù)的可靠性,保障數(shù)據(jù)不會丟失,并提高應用程序的性能讓程序可以直接從存儲介質中加載數(shù)據(jù)這是便需要對數(shù)據(jù)進行持久化存儲。 1)導入pymysql庫,用于連接Mysql。 importpymysql 2)提前在mysql中創(chuàng)建好test數(shù)據(jù)庫,在test數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)表movie_douban包含字段moviename(電影名),directorname(導演名),moiveyear(年份),moivenation(國籍),movietype(電影類型),通過for循環(huán)實現(xiàn)向表中插入數(shù)據(jù)。 db=pymysql.connect(host='localhost',user='root',password='123456',port=3306) cursor=db.cursor() cursor.execute("usetest") cursor.execute("DROPTABLEIFEXISTSmovie_douban")sql1="""CREATETABLE`movie_douban`(`moviename`char(30)NOTNULL,`directorname`char(50)NOTNULL,`movieyear`year(4)NOTNULL,`movienation`char(50)NOTNULL,`movietype`char(30)NOTNULL,PRIMARYKEY(`moviename`))ENGINE=InnoDBDEFAULTCHARSET=utf8mb4;"""cursor.execute(sql1)print("CreatedtableSuccessfull.")try:cursor.execute(sql,(movie_names_lst[num],director_names[num],movie_years[num],movie_nations[num],movie_types[num]))dbmit()except:db.rollback()db.close()4.4.4數(shù)據(jù)預處理

1)導入指定的庫importpandasaspd2)自定義方法main(),作為實現(xiàn)調用其他數(shù)據(jù)預處理自定義方法的入口。defmain():#1數(shù)據(jù)讀取column_names=['電影名稱','導演','年份','國籍','類型']movies_data=pd.read_csv('豆瓣電影寫入.csv',header=None,names=column_names)#2探索清理數(shù)據(jù)movies_()movies_data.dropna(inplace=True)#3轉換數(shù)據(jù)data_new=transform_data(movies_data)#4規(guī)約數(shù)據(jù)#按年份和國籍分組并計算每年每個國籍的電影數(shù)量pivot_table=pd.pivot_table(data_new,values='電影名稱',index='年代',columns='國籍',aggfunc='count',fill_value=0)print(pivot_table)3)自定義transform_data(movies_data)方法用于數(shù)據(jù)轉換操作。#1處理年份數(shù)據(jù)#1.1數(shù)據(jù)類型轉換(這里假設年份列為字符串類型,需要轉換為整數(shù)類型)movies_data['年份']=pd.to_numeric(movies_data['年份'],errors='coerce')#1.2篩選年份在1990和2020之間的電影filtered_movies=movies_data[(movies_data['年份']>=1990)&(movies_data['年份']<2020)]#1.3創(chuàng)建新列表示年代defcategorize_decade(year):ifyear<2000:return'90年代'elifyear<2010:return'00年代'else:return'10年代'filtered_movies['年代']=filtered_movies['年份'].apply(categorize_decade)#2處理國籍數(shù)據(jù)nationalities_split=filtered_movies['國籍'].str.split('',expand=True)filtered_movies['國籍']=nationalities_split[0]#3處理類型數(shù)據(jù)——獨熱編碼#3.1將類型列拆分為多個二進制列#types_dummies=filtered_movies['類型'].str.get_dummies('')#3.2將二進制列合并到原數(shù)據(jù)框#mov

溫馨提示

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

評論

0/150

提交評論