網(wǎng)絡(luò)空間安全概論 實(shí)驗(yàn)7網(wǎng)絡(luò)爬蟲 豆瓣電影熱榜單的爬蟲_第1頁
網(wǎng)絡(luò)空間安全概論 實(shí)驗(yàn)7網(wǎng)絡(luò)爬蟲 豆瓣電影熱榜單的爬蟲_第2頁
網(wǎng)絡(luò)空間安全概論 實(shí)驗(yàn)7網(wǎng)絡(luò)爬蟲 豆瓣電影熱榜單的爬蟲_第3頁
網(wǎng)絡(luò)空間安全概論 實(shí)驗(yàn)7網(wǎng)絡(luò)爬蟲 豆瓣電影熱榜單的爬蟲_第4頁
網(wǎng)絡(luò)空間安全概論 實(shí)驗(yàn)7網(wǎng)絡(luò)爬蟲 豆瓣電影熱榜單的爬蟲_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

中國礦業(yè)大學(xué)計(jì)算機(jī)學(xué)院2019級(jí)本科生課程報(bào)告課程名稱信息內(nèi)容安全報(bào)告題目豆瓣電影熱門榜單的爬蟲報(bào)告時(shí)間2022.6.30姓名鐘昌甫學(xué)號(hào)08193050任課教師曹天杰2021-2022(二)《信息內(nèi)容安全》評(píng)分表考核類別考核內(nèi)容支撐課程目標(biāo)試題類型與分值比例分?jǐn)?shù)結(jié)課考核課程報(bào)告(論文綜述、設(shè)計(jì)、實(shí)現(xiàn)、寫作規(guī)范)目標(biāo)3:掌握信息內(nèi)容安全的基礎(chǔ)知識(shí),針對(duì)具體問題和要求選擇正確的技術(shù)路線,通過在實(shí)驗(yàn)環(huán)境中進(jìn)行仿真實(shí)驗(yàn)并能根據(jù)算法特點(diǎn)進(jìn)行攻擊測(cè)試和綜合性能評(píng)價(jià),得到具有參考價(jià)值的結(jié)論。課程報(bào)告,100%過程考核1.基本概念、原理目標(biāo)1:掌握信息內(nèi)容安全的基本概念、分類、原理和相關(guān)技術(shù),能夠根據(jù)課程基本知識(shí)對(duì)信息內(nèi)容安全領(lǐng)域出現(xiàn)的問題進(jìn)行歸類、分析、并有初步分析和解決問題的能力。系統(tǒng)演示及解說,30%2.系統(tǒng)設(shè)計(jì)與分析目標(biāo)2:掌握信息內(nèi)容安全處理相關(guān)的理論、技術(shù)以及健全的評(píng)價(jià)體系,能夠根據(jù)具體問題分析算法、設(shè)計(jì)算法、實(shí)現(xiàn)算法并能綜合評(píng)價(jià)算法。PPT講解與答辯,50%3.基本概念、原理目標(biāo)1作業(yè)或測(cè)試,20%結(jié)課考核與過程考核比例結(jié)課考核:60%過程考核:40%評(píng)閱人:2022年7月10日?qǐng)?bào)告摘要關(guān)鍵詞:爬蟲即網(wǎng)絡(luò)爬蟲,是一種自動(dòng)獲取網(wǎng)頁內(nèi)容的程序。是搜索引擎的重要組成部分,因此搜索引擎優(yōu)化很大程度上就是針對(duì)爬蟲而做出的優(yōu)化。爬取豆瓣電影的熱門榜,獲取熱門榜信息并生成excel文件實(shí)現(xiàn)數(shù)據(jù)可視化

報(bào)告正文爬蟲的基本工作流程及框架:1.首先選取一部分精心挑選的種子URL;

2.將這些URL放入待抓取URL隊(duì)列;

3.從待抓取URL隊(duì)列中取出待抓取在URL,解析DNS,并且得到主機(jī)的ip,并將URL對(duì)應(yīng)的網(wǎng)頁下載下來,存儲(chǔ)進(jìn)已下載網(wǎng)頁庫中。此外,將這些URL放進(jìn)已抓取URL隊(duì)列。4.分析已抓取URL隊(duì)列中的URL,分析其中的其他URL,并且將URL放入待抓取URL隊(duì)列,從而進(jìn)入下一個(gè)循環(huán)。人工操作步驟:1.獲取電影信息的網(wǎng)頁;

2.找到要評(píng)分信息的位置;

3.復(fù)制、保存我們想要的評(píng)分?jǐn)?shù)據(jù)。爬蟲操作步驟:1.請(qǐng)求并下載電影頁面信息;

2.解析并定位評(píng)分信息;

3.保存評(píng)分?jǐn)?shù)據(jù)。下面我們就使用requests和xpath來爬取豆瓣電影中的“電影名”、“導(dǎo)演”、“演員”、“評(píng)分”等信息。爬蟲前python環(huán)境的安裝:打開cmd,輸入以下指令:pip

install

requestspip

install

lxml豆瓣網(wǎng)未登陸的情況下無法采集數(shù)據(jù),requests.get會(huì)返回418,418的意思是被網(wǎng)站的反爬程序識(shí)別返回的結(jié)果,所以采集之前要先登錄網(wǎng)站,并且復(fù)制網(wǎng)站的User-Agent和Cookie信息,并且把User-Agent和Cookie轉(zhuǎn)化為字典格式,網(wǎng)頁鼠標(biāo)右鍵——檢查——Network——Doc——F5刷新網(wǎng)址(這步很重要)——選擇Name下面的‘top250?start=0&filter=’——Headers——Cookie,User-Agent(位于cookie下面)基礎(chǔ)班代碼(備注都已表明):fromfileinputimportfilenameimportjsonimportrequestsimportpandasfrombs4importBeautifulSoup#網(wǎng)址url='/j/new_search_subjects?sort=U&range=0,10&tags=&start=0'#導(dǎo)航header={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/102.0.5005.124Safari/537.36Edg/102.0.1245.44'}#目的地response=requests.get(url=url,headers=header)#獲取網(wǎng)頁源代碼baoxian=response.text#轉(zhuǎn)變數(shù)據(jù),將數(shù)據(jù)進(jìn)行分層data1=json.loads(baoxian)#電影的數(shù)量num=len(data1['data'])#設(shè)置表頭以及規(guī)格tou=['directors','rate','title','url']guige=pandas.DataFrame(index=range(num),columns=tou)foriinrange(num):guige.loc[i,'directors']=data1['data'][i]['directors']guige.loc[i,'rate']=data1['data'][i]['rate']guige.loc[i,'title']=data1['data'][i]['title']guige.loc[i,'url']=data1['data'][i]['url']filename='1.xlsx'guige.to_excel(filename)由于本段代碼需要人為手動(dòng)獲取每個(gè)頁面的User-Agent和Cookie信息,故優(yōu)化代碼,通過觀察可以看出,豆瓣電影top250榜單總共有10個(gè)頁面,每個(gè)頁面有25部電影,總共250部電影。并且,這10個(gè)頁面的網(wǎng)址有一定的規(guī)律性,那就是網(wǎng)址中的

start

位置,第1個(gè)頁面start=0,第2個(gè)頁面start=25,第10個(gè)頁面start=225,可以推測(cè)出這10個(gè)頁面的網(wǎng)址中的start呈現(xiàn)出[0,25,50,75,100,125,150,175,200,225]的序列分布規(guī)律。于是可以通過python循環(huán)自動(dòng)生成10個(gè)網(wǎng)址,并且把10個(gè)網(wǎng)址存放在列表中。代碼如下(備注已標(biāo)注):#導(dǎo)入庫importrequestsfrombs4importBeautifulSoupimporttimeimportpandasaspdfromdatetimeimportdate#定義函數(shù),用來處理User-Agent和Cookiedefua_ck():'''網(wǎng)站需要登錄才能采集,需要從Network--Doc里復(fù)制User-Agent和Cookie,Cookie要轉(zhuǎn)化為字典'''user_agent={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/85.0.4183.102Safari/537.36'}cookies='ll="118202";bid=FsStcocWuPQ;_vwo_uuid_v2=D65179C81F8EE8041E5F8605041534542|e1ed6add019a5cf6cdb06398640e7fe6;gr_user_id=43e3a769-ff1c-4abe-b1c3-f7d5b28082de;douban-fav-remind=1;push_doumail_num=0;douban-profile-remind=1;viewed="26870407_20438158_10799082_3043970_35174681_26929955_3932365_26886337_27667378_33419041";_pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1600420934%2C%22https%3A%2F%2F%2Flink%3Furl%3DuCRtekAbCAhUknlQ9g23ZVQuuGcvpkHuD4DlXS-dKKFXIpgjJwlSGuJm_tBya8dT%26wd%3D%26eqid%3Dc67bc9250001c8ee000000055f647c42%22%5D;_pk_ses.100001.4cf6=*;__utmz=30149280.1600420934.91.83.utmcsr=baidu|utmccn=(organic)|utmcmd=organic;__utma=30149280.1986063068.1597310055.1600241651.1600420934.91;__utmc=30149280;__utmb=223695600420934;__utma=223695111.1305332624.1597310055.1600228709.1600420934.50;__utmz=223695111.1600420934.50.45.utmcsr=baidu|utmccn=(organic)|utmcmd=organic;__utmc=223695111;ap_v=0,6.0;dbcl2="177996890:FXynNkgIDSM";ck=5mGV;__utmt=1;__utmv=30149280.17799;__utmb=301492600420934;push_noty_num=0;_pk_id.100001.4cf6=991c66698d6e616d.1597310055.50.1600420993.1600228708.'#Cookie轉(zhuǎn)化為字典cookies=cookies.split(';')cookies_dict={}foriincookies:cookies_dict[i.split('=')[0]]=i.split('=')[1]returnuser_agent,cookies_dict#定義函數(shù),用于獲取豆瓣top250每一個(gè)頁面的網(wǎng)址defget_urls(n):'''n:頁面數(shù)量'''urls=[]#用于存放網(wǎng)址num=(n-1)*25+1foriinrange(0,num,25):url='/top250?start={}&filter='.format(i)urls.append(url)returnurls#定義函數(shù),獲取每個(gè)頁面25部電影的鏈接defget_movies_url(url,u_a,c_d):'''url:每一個(gè)頁面的鏈接u_a:User-Agentc_d:cookies'''html=requests.get(url,headers=u_a,#加載User-Agentcookies=c_d)#加載cookiehtml.encoding=html.apparent_encoding#解決亂碼的萬金油方法ifhtml.status_code==200:print('網(wǎng)頁訪問成功,代碼:{}\n'.format(html.status_code))soup=BeautifulSoup(html.text,'html.parser')#用html.parser來解析網(wǎng)頁items=soup.find('ol',class_='grid_view').find_all('li')movies_url=[]foriteminitems:#電影鏈接movie_href=item.find('div',class_='hd').find('a')['href']movies_url.append(movie_href)returnmovies_urltime.sleep(0.4)#設(shè)置時(shí)間間隔,0.4秒采集一次,避免頻繁登錄網(wǎng)頁#定義函數(shù),獲取每一部電影的詳細(xì)信息defget_movie_info(href,u_a,c_d):'''href:每一部電影的鏈接u_a:User-Agentc_d:cookies'''html=requests.get(href,headers=u_a,cookies=c_d)soup=BeautifulSoup(html.text,'html.parser')#用html.parser來解析網(wǎng)頁item=soup.find('div',id='content')movie={}#新建字典,存放電影信息#電影名稱movie['電影名稱']=item.h1.span.text#導(dǎo)演、類型、制片國家/地區(qū)、語言、上映時(shí)間、片長(zhǎng)(部分電影這些信息不全,先全部采集,留待數(shù)據(jù)分析時(shí)處理)movie['電影其他信息']=item.find('div',id='info').text.replace('','').split('\n')foriinmovie['電影其他信息']:if':'ini:movie[i.split(':')[0]]=i.split(':')[1]else:continue#豆瓣評(píng)分、評(píng)分人數(shù)movie['評(píng)分']=item.find('div',id='interest_sectl').find('div',class_='rating_selfclearfix').find('strong',class_='llrating_num').textmovie['評(píng)分人數(shù)']=item.find('div',id='interest_sectl').find('div',class_='rating_selfclearfix').find('div',class_='rating_sum').find('span',property='v:votes').text#電影獲獎(jiǎng)情況returnmovietime.sleep(0.4)#0.4秒采集一次,避免頻繁登錄網(wǎng)頁#設(shè)置主函數(shù),運(yùn)行上面設(shè)置好的函數(shù)defmain():'''n:頁面數(shù)量,總共有10個(gè)頁面u_a:User-Agentc_d:cookies'''n=10#頁面數(shù)量,總共有10個(gè)頁面print('開始采集數(shù)據(jù),預(yù)計(jì)耗時(shí)2分鐘')#處理User-Agent和Cookielogin=ua_ck()u_a=login[0]c_d=login[1]#獲取豆瓣top250每一頁的鏈接,共10頁urls=get_urls(n)print('豆瓣10個(gè)網(wǎng)頁鏈接已生成??!')#獲取每一頁25部電影的鏈接,共250部

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論