




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
中國礦業大學計算機學院2019級本科生課程報告課程名稱信息內容安全報告題目豆瓣電影熱門榜單的爬蟲報告時間2022.6.30姓名鐘昌甫學號08193050任課教師曹天杰2021-2022(二)《信息內容安全》評分表考核類別考核內容支撐課程目標試題類型與分值比例分數結課考核課程報告(論文綜述、設計、實現、寫作規范)目標3:掌握信息內容安全的基礎知識,針對具體問題和要求選擇正確的技術路線,通過在實驗環境中進行仿真實驗并能根據算法特點進行攻擊測試和綜合性能評價,得到具有參考價值的結論。課程報告,100%過程考核1.基本概念、原理目標1:掌握信息內容安全的基本概念、分類、原理和相關技術,能夠根據課程基本知識對信息內容安全領域出現的問題進行歸類、分析、并有初步分析和解決問題的能力。系統演示及解說,30%2.系統設計與分析目標2:掌握信息內容安全處理相關的理論、技術以及健全的評價體系,能夠根據具體問題分析算法、設計算法、實現算法并能綜合評價算法。PPT講解與答辯,50%3.基本概念、原理目標1作業或測試,20%結課考核與過程考核比例結課考核:60%過程考核:40%評閱人:2022年7月10日報告摘要關鍵詞:爬蟲即網絡爬蟲,是一種自動獲取網頁內容的程序。是搜索引擎的重要組成部分,因此搜索引擎優化很大程度上就是針對爬蟲而做出的優化。爬取豆瓣電影的熱門榜,獲取熱門榜信息并生成excel文件實現數據可視化
報告正文爬蟲的基本工作流程及框架:1.首先選取一部分精心挑選的種子URL;
2.將這些URL放入待抓取URL隊列;
3.從待抓取URL隊列中取出待抓取在URL,解析DNS,并且得到主機的ip,并將URL對應的網頁下載下來,存儲進已下載網頁庫中。此外,將這些URL放進已抓取URL隊列。4.分析已抓取URL隊列中的URL,分析其中的其他URL,并且將URL放入待抓取URL隊列,從而進入下一個循環。人工操作步驟:1.獲取電影信息的網頁;
2.找到要評分信息的位置;
3.復制、保存我們想要的評分數據。爬蟲操作步驟:1.請求并下載電影頁面信息;
2.解析并定位評分信息;
3.保存評分數據。下面我們就使用requests和xpath來爬取豆瓣電影中的“電影名”、“導演”、“演員”、“評分”等信息。爬蟲前python環境的安裝:打開cmd,輸入以下指令:pip
install
requestspip
install
lxml豆瓣網未登陸的情況下無法采集數據,requests.get會返回418,418的意思是被網站的反爬程序識別返回的結果,所以采集之前要先登錄網站,并且復制網站的User-Agent和Cookie信息,并且把User-Agent和Cookie轉化為字典格式,網頁鼠標右鍵——檢查——Network——Doc——F5刷新網址(這步很重要)——選擇Name下面的‘top250?start=0&filter=’——Headers——Cookie,User-Agent(位于cookie下面)基礎班代碼(備注都已表明):fromfileinputimportfilenameimportjsonimportrequestsimportpandasfrombs4importBeautifulSoup#網址url='/j/new_search_subjects?sort=U&range=0,10&tags=&start=0'#導航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)#獲取網頁源代碼baoxian=response.text#轉變數據,將數據進行分層data1=json.loads(baoxian)#電影的數量num=len(data1['data'])#設置表頭以及規格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)由于本段代碼需要人為手動獲取每個頁面的User-Agent和Cookie信息,故優化代碼,通過觀察可以看出,豆瓣電影top250榜單總共有10個頁面,每個頁面有25部電影,總共250部電影。并且,這10個頁面的網址有一定的規律性,那就是網址中的
start
位置,第1個頁面start=0,第2個頁面start=25,第10個頁面start=225,可以推測出這10個頁面的網址中的start呈現出[0,25,50,75,100,125,150,175,200,225]的序列分布規律。于是可以通過python循環自動生成10個網址,并且把10個網址存放在列表中。代碼如下(備注已標注):#導入庫importrequestsfrombs4importBeautifulSoupimporttimeimportpandasaspdfromdatetimeimportdate#定義函數,用來處理User-Agent和Cookiedefua_ck():'''網站需要登錄才能采集,需要從Network--Doc里復制User-Agent和Cookie,Cookie要轉化為字典'''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轉化為字典cookies=cookies.split(';')cookies_dict={}foriincookies:cookies_dict[i.split('=')[0]]=i.split('=')[1]returnuser_agent,cookies_dict#定義函數,用于獲取豆瓣top250每一個頁面的網址defget_urls(n):'''n:頁面數量'''urls=[]#用于存放網址num=(n-1)*25+1foriinrange(0,num,25):url='/top250?start={}&filter='.format(i)urls.append(url)returnurls#定義函數,獲取每個頁面25部電影的鏈接defget_movies_url(url,u_a,c_d):'''url:每一個頁面的鏈接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('網頁訪問成功,代碼:{}\n'.format(html.status_code))soup=BeautifulSoup(html.text,'html.parser')#用html.parser來解析網頁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)#設置時間間隔,0.4秒采集一次,避免頻繁登錄網頁#定義函數,獲取每一部電影的詳細信息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來解析網頁item=soup.find('div',id='content')movie={}#新建字典,存放電影信息#電影名稱movie['電影名稱']=item.h1.span.text#導演、類型、制片國家/地區、語言、上映時間、片長(部分電影這些信息不全,先全部采集,留待數據分析時處理)movie['電影其他信息']=item.find('div',id='info').text.replace('','').split('\n')foriinmovie['電影其他信息']:if':'ini:movie[i.split(':')[0]]=i.split(':')[1]else:continue#豆瓣評分、評分人數movie['評分']=item.find('div',id='interest_sectl').find('div',class_='rating_selfclearfix').find('strong',class_='llrating_num').textmovie['評分人數']=item.find('div',id='interest_sectl').find('div',class_='rating_selfclearfix').find('div',class_='rating_sum').find('span',property='v:votes').text#電影獲獎情況returnmovietime.sleep(0.4)#0.4秒采集一次,避免頻繁登錄網頁#設置主函數,運行上面設置好的函數defmain():'''n:頁面數量,總共有10個頁面u_a:User-Agentc_d:cookies'''n=10#頁面數量,總共有10個頁面print('開始采集數據,預計耗時2分鐘')#處理User-Agent和Cookielogin=ua_ck()u_a=login[0]c_d=login[1]#獲取豆瓣top250每一頁的鏈接,共10頁urls=get_urls(n)print('豆瓣10個網頁鏈接已生成!!')#獲取每一頁25部電影的鏈接,共250部
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 日常用剪刀企業縣域市場拓展與下沉戰略研究報告
- 碳納米管企業縣域市場拓展與下沉戰略研究報告
- 壓熱器企業縣域市場拓展與下沉戰略研究報告
- 地熱能發電裝備企業數字化轉型與智慧升級戰略研究報告
- 2024-2025學年云南省鳳慶二中高考考前模擬物理試題含解析
- 住房水電改造合同樣本
- 勞動合同樣本里下
- 勞務派遣定金合同標準文本
- 農田托管合同標準文本
- 勞動合同范例文秘
- 戰略性新興產業政府引導基金發展策略與模式
- 豬場的生物安全工作總結
- 財政基礎知識培訓課件
- 春季朋友聚餐邀請函
- 胸腔推注給藥的護理
- 監控系統改造方案
- 第6章 輸電線路和繞組中的波過程
- 離婚協議書完整版Word模板下載
- 機床數控技術及應用-數控機床的機械結構
- 醫院檢驗科培訓課件:《標本溢灑處理流程》
- 【自考復習資料】00067財務管理學考試重點
評論
0/150
提交評論