![愛奇藝電影查詢系統(tǒng)實(shí)踐報(bào)告_第1頁](http://file4.renrendoc.com/view/c5744a345de8a1e02e8aacfec3146026/c5744a345de8a1e02e8aacfec31460261.gif)
![愛奇藝電影查詢系統(tǒng)實(shí)踐報(bào)告_第2頁](http://file4.renrendoc.com/view/c5744a345de8a1e02e8aacfec3146026/c5744a345de8a1e02e8aacfec31460262.gif)
![愛奇藝電影查詢系統(tǒng)實(shí)踐報(bào)告_第3頁](http://file4.renrendoc.com/view/c5744a345de8a1e02e8aacfec3146026/c5744a345de8a1e02e8aacfec31460263.gif)
![愛奇藝電影查詢系統(tǒng)實(shí)踐報(bào)告_第4頁](http://file4.renrendoc.com/view/c5744a345de8a1e02e8aacfec3146026/c5744a345de8a1e02e8aacfec31460264.gif)
![愛奇藝電影查詢系統(tǒng)實(shí)踐報(bào)告_第5頁](http://file4.renrendoc.com/view/c5744a345de8a1e02e8aacfec3146026/c5744a345de8a1e02e8aacfec31460265.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
愛奇藝電影查詢系統(tǒng)實(shí)踐報(bào)告成果名稱:愛奇藝電影查詢系統(tǒng)愛奇藝電影查詢系統(tǒng)一、實(shí)踐目的在實(shí)踐中提高所學(xué)知識(shí)與現(xiàn)實(shí)系統(tǒng)結(jié)合的能力,努力解決并實(shí)現(xiàn)現(xiàn)實(shí)生活中的問題,并為自己能順利與社會(huì)環(huán)境接軌做準(zhǔn)備實(shí)踐內(nèi)容(系統(tǒng)簡述)1.掌握python程序設(shè)置語言2.熟悉前端特性css、html、js3.掌握網(wǎng)絡(luò)爬蟲的原理和基本框架4.掌握網(wǎng)絡(luò)設(shè)置框架5.完成一個(gè)工具類網(wǎng)站制作1、爬蟲先分析網(wǎng)絡(luò)源代碼爬蟲后代碼<divclass="qy-list-wrap"><ulclass="qy-mod-ul"><liclass="qy-mod-li"><divclass="qy-list-imgvertical"><divclass="qy-mod-link-wrap"><atitle="使徒行者"class="qy-mod-link"href="http:///v_19rrm2pgd4.html"target="_blank"><imgalt="使徒行者"src="http:///common/fix/site-v4/qy-mod-img_260_360.png"class="qy-mod-coverfadeOutIn-enter-active"></a></div><divclass="title-wrap"><pclass="main"><spanclass="text-score">9.0</span><atitle="使徒行者"class="link-txt"href="http:///v_19rrm2pgd4.html"target="_blank">使徒行者</a></p></div></div></li><liclass="qy-mod-li"><divclass="qy-list-imgvertical"><divclass="qy-mod-link-wrap"><atitle="恐龍王"class="qy-mod-link"href="http:///v_19rqzttm6c.html"target="_blank"><imgalt="恐龍王"src="http:///common/fix/site-v4/qy-mod-img_260_360.png"class="qy-mod-coverfadeOutIn-enter-active"></a></div><divclass="title-wrap"><pclass="main"><spanclass="text-score">8.4</span><atitle="恐龍王"class="link-txt"href="http:///v_19rqzttm6c.html"target="_blank">恐龍王</a></p><ptitle="主演:呂佩玉/王衡/孫曄"class="sub">主演:呂佩玉/王衡/孫曄</p></div></div></li><liclass="qy-mod-li"><divclass="qy-list-imgvertical"><divclass="qy-mod-link-wrap"><atitle="新僵尸先生2"class="qy-mod-link"href="http:///v_19rrf6eqrk.html"target="_blank"><imgalt="新僵尸先生2"src="http:///common/fix/site-v4/qy-mod-img_260_360.png"class="qy-mod-coverfadeOutIn-enter-active"></a></div><divclass="title-wrap"><pclass="main"><spanclass="text-score">7.2</span><atitle="新僵尸先生2"class="link-txt"href="http:///v_19rrf6eqrk.html"target="_blank">新僵尸先生2</a></p><ptitle="主演:錢小豪/徐沅澔/謝昀杉"class="sub">主演:錢小豪/徐沅澔/謝昀杉</p></div></div></li><liclass="qy-mod-li"><divclass="qy-list-imgvertical"><divclass="qy-mod-link-wrap"><atitle="全民目擊"class="qy-mod-link"href="http:///v_19rrhd097w.html"target="_blank"><imgalt="全民目擊"src="http:///common/fix/site-v4/qy-mod-img_260_360.png"class="qy-mod-coverfadeOutIn-enter-active"></a></div><divclass="title-wrap"><pclass="main"><spanclass="text-score">9.0</span><atitle="全民目擊"class="link-txt"href="http:///v_19rrhd097w.html"target="_blank">全民目擊</a></p><ptitle=紅雷/余男</p></div></div></li><liclass="qy-mod-li"><divclass="qy-list-imgvertical"><divclass="qy-mod-link-wrap"><atitle="靈魂擺渡黃泉"class="qy-mod-link"href="http:///v_19rrfkek9w.html"target="_blank"><imgalt="靈魂擺渡黃泉"src="http:///common/fix/site-v4/qy-mod-img_260_360.png"class="qy-mod-coverfadeOutIn-enter-active"></a></div><divclass="title-wrap"><pclass="main"><spanclass="text-score">8.6</span><atitle="靈魂擺渡黃泉"class="link-txt"href="http:///v_19rrfkek9w.html"target="_blank">靈魂擺渡黃泉</a></p><ptitle="主演:于毅/岳麗娜/何花"class="sub">主演:于毅/岳麗娜/何花</p></div></div></li><liclass="qy-mod-li"><divclass="qy-list-imgvertical"><divclass="qy-mod-link-wrap"><atitle="澳門風(fēng)云3"class="qy-mod-link"href="http:///v_19rrkt424g.html"target="_blank"><imgalt="澳門風(fēng)云3"src="http:///common/fix/site-v4/qy-mod-img_260_360.png"class="qy-mod-coverfadeOutIn-enter-active"></a></div><divclass="title-wrap"><pclass="main"><spanclass="text-score">8.4</span><atitle="澳門風(fēng)云3"class="link-txt"href="http:///v_19rrkt424g.html"target="_blank">澳門風(fēng)云3</a></p></div></div></li><liclass="qy-mod-li"><divclass="qy-list-imgvertical"><divclass="qy-mod-link-wrap"><atitle="葉問3"class="qy-mod-link"href="http:///v_19rr74wclg.html"target="_blank"><imgalt="葉問3"src="http:///common/fix/site-v4/qy-mod-img_260_360.png"class="qy-mod-coverfadeOutIn-enter-active"></a></div><divclass="title-wrap"><pclass="main"><spanclass="text-score">8.6</span><atitle="葉問3"class="link-txt"href="http:///v_19rr74wclg.html"target="_blank">葉問3</a>圖2-1爬蟲結(jié)果1</li>圖2-2爬蟲結(jié)果22、數(shù)據(jù)庫mysql安裝mysql5.0版本,在mysql中新建數(shù)據(jù)庫movie_sys,建立的數(shù)據(jù)庫會(huì)在后面建立DjangoWeb框架時(shí)連接使用圖2-3新建數(shù)據(jù)庫DjangoWeb框架(后端)先安裝Django,再創(chuàng)建項(xiàng)目、App圖2-4創(chuàng)建的項(xiàng)目、App然后編寫Model層,配置settings.pyfromdjango.dbimportmodels
#Createyourmodelshere.
def__str__(self):
return'<Movie:{}>'.format()
classMeat:
verbose_name=verbose_name_plural="電影信息"
classUsers(models.Model):
username=models.CharField(max_length=30)
userpwd=models.CharField(max_length=30)INSTALLED_APPS=[
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'movie',
]DATABASES={
#'default':{
#'ENGINE':'django.db.backends.sqlite3',
#'NAME':os.path.join(BASE_DIR,'db.sqlite3'),
#}
'default':{
'ENGINE':'django.db.backends.mysql',
'HOST':'',
'PORT':'3306',
'NAME':'movie_sys',
'USER':'root',
'PASSWORD':'root',
'OPTIONS':{'isolation_level':None}
}
}最后創(chuàng)建數(shù)據(jù)庫遷移文件,創(chuàng)建表和后臺(tái)登錄用戶圖2-5創(chuàng)建表、用戶DjangoWeb框架(前端)先配置路由,再修改views.py,創(chuàng)建表單文件,在student目錄下創(chuàng)建forms.py它要跟views.py同級(jí)。最后做出界面效果,每步頁面效果如圖圖2-6登錄界面圖2-7注冊(cè)界面圖2-8首頁界面圖2-10修改界面三、實(shí)踐過程(系統(tǒng)詳述)爬蟲首先要進(jìn)行的就是爬蟲,從網(wǎng)頁上爬出我們需要的數(shù)據(jù)、爬蟲是搜索引擎中的重要組成部分,為搜索引擎抓取互聯(lián)網(wǎng)中的數(shù)據(jù)。通用的搜索引擎如谷歌、百度等逐漸成為人們?cè)L問互聯(lián)網(wǎng)的入口,但由于其通用性限制,抓取網(wǎng)頁時(shí)沒有針對(duì)性,因而也無法對(duì)其抓取的結(jié)果進(jìn)行針對(duì)特定領(lǐng)域的進(jìn)一步分析,導(dǎo)致查詢結(jié)果不夠深入和專業(yè)化;另外通用的搜索引擎通常會(huì)返回一些與用戶所尋找的主題無關(guān)的結(jié)果,造成信息過載。在爬蟲系統(tǒng)中,待抓取URL隊(duì)列是很重要的一部分。本文提出的爬蟲程序通過模擬登錄二手房網(wǎng)址并獲取相關(guān)數(shù)據(jù),并將這些數(shù)據(jù)保存到本地,方便進(jìn)一步的數(shù)據(jù)挖掘與分析。最后本文利用Python可視化方法對(duì)數(shù)據(jù)進(jìn)行簡單的數(shù)據(jù)分析。使用本文爬蟲程序可以節(jié)省數(shù)據(jù)分析人員的開發(fā)時(shí)間,使得他們可以將更多的精力放在數(shù)據(jù)分析上面,同時(shí)也可以對(duì)海量數(shù)據(jù)起到針對(duì)性的提取。網(wǎng)頁的抓取策略可以分為深度優(yōu)先、廣度優(yōu)先和最佳優(yōu)先三種。深度優(yōu)先在很多情況下會(huì)導(dǎo)致爬蟲的陷入(trapped)問題,目前常見的是廣度優(yōu)先和最佳優(yōu)先方法。網(wǎng)頁分析算法可以歸納為基于網(wǎng)絡(luò)拓?fù)?、基于網(wǎng)頁內(nèi)容和基于用戶訪問行為三種類型。(1)分析網(wǎng)絡(luò)源代碼首先打開愛奇藝電影官網(wǎng),查看網(wǎng)絡(luò)源代碼,發(fā)現(xiàn)每一部正在熱映的電影的源代碼都是以“<li>”開始,以“</li>”結(jié)束。圖3-1源代碼起止符號(hào)然后選擇要爬取的信息,我選擇了正在熱映的電影的名稱、海報(bào)、上映時(shí)間、評(píng)分和國家,從源代碼的標(biāo)簽中總結(jié)提取信息,寫出正則表達(dá)式:'<li.*?data.title="(.*?)".*?data-release="(.*?)".*?data-rate="(.*?)".*?data-region="(.*?)".*?<liclass="poster">.*?<imgsrc="(.*?)"'(2)保存數(shù)據(jù)爬取的數(shù)據(jù)有多種儲(chǔ)存的方法,我們學(xué)習(xí)了保存到文件夾和數(shù)據(jù)庫,下面這種是保存到文件夾,保存到數(shù)據(jù)庫會(huì)在后面的數(shù)據(jù)庫模塊中寫詳細(xì)過程。
importre
importrequests
pagecontent=requests.get("/").text
pagecontent=str(pagecontent)
movielist=re.findall('<li.*?data.title="(.*?)".*?data-release="(.*?)".*?data-rate="(.*?)".*?data-region="(.*?)".*?<liclass="poster">.*?<imgsrc="(.*?)"',pagecontent,re.S)
formovieinmovielist:
moviename,movietime,moviepingfen,movieguojia,moviepicture=movie
print("電影的名字:%s,電影的時(shí)間%s,電影的評(píng)分%s,電影的國家:%s"%(moviename,movietime,moviepingfen,movieguojia))
pic=requests.get(moviepicture).content
try:
withopen("C:/Users/air/Desktop/課程/大二/實(shí)踐周/PYcharm/5th/電影"+moviename+".jpg","wb")asf2:
f2.write(pic)
exceptFileNotFoundError:
print(moviename+"文件不能保存")
print("OK")<divclass="quotes"><iclass="icon-quote-right"></i>Vczh,MicrosoftInc.</div></div></div><divclass="row"><divclass="span12"><h4>ThepythoncrawlerreadstheyoudaotranslationAPI</h4><p>fromurllibimportrequest</p><p>fromurllibimportparse</p><p>importjson</p><p>if__name__=="__main__":</p><p>Request_URL='/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=/link'</p><p>whileTrue:</p><p>Form_Data={}</p><p>Form_Data['type']='AUTO'</p><p>Form_Data['i']=input("Input:")</p><p>Form_Data['doctype']='json'</p><p>Form_Data['Version']='1.8'</p><p>Form_Data['keyfrom']='fanyi.web'</p><p>Form_Data['ue']='ue:UTF-8'</p><p>Form_Data['action']='FY_BY_CLICKBUTTON'</p><p>data=parse.urlencode(Form_Data).encode('utf-8')</p><p>response=request.urlopen(Request_URL,data)</p><p>html=response.read().decode('utf-8')</p><p>translate_results=json.loads(html)</p><p>translate_results=translate_results['translateResult'][0][0]['tgt']</p><p>print("Result:%s"%translate_results)</p></p><divclass="span4"><h3>CoderSays</h3><divclass="client-says">"StayCurious."</div><divclass="client-says-2"><divclass="quotes"><iclass="icon-quote-right"></i>Ramsy,MicrosoftInc.</div></div></div></div><divclass="span12"><h4>ThepythoncrawlerreadstheHuyaStreamAPI</h4><p>defloadPage(url):</p><p>user_agent=random.choice(UA_LIST)</p><p>headers={'User-Agent':user_agent}</p><p>context=ssl._create_unverified_context()</p><p>#SendingRequest</p><p>req=request.Request(url,headers=headers)</p><p>#打開對(duì)象</p><p>response=request.urlopen(req,context=context)</p><p>#Reading</p><p>html=response.read()</p><p>html=html.decode("utf-8")</p><p>returnhtml</p><p>defwritePage(html,filename):</p><p>withopen(filename,"w",encoding="utf-8")astarget:</p><p>target.write(html)</p><p>target.close()</p><p>print("Finish")</p></p></p></div><metaname="viewport"content="width=device-width,initial-scale=1.0"><linkhref="img/favicon.ico"rel="icon"type="image/png"><linkhref="css/styles.css"rel="stylesheet"><linkhref="css/bootstrap-override.css"rel="stylesheet"><linkhref="css/font-awesome/font-awesome.css"rel="stylesheet"><linkrel="stylesheet"href="css/flexslider.css"type="text/css"media="screen"></head><body><headerid="header"><divclass="container"><divclass="rowt-container"><divclass="rowspace50"></div></div></div></div></div>圖3-4連接mysql新建數(shù)據(jù)庫它是由Python寫成的,語法簡單,便于操作。能完整的編輯網(wǎng)頁,使網(wǎng)頁具有插入,刪除、修改等功能。Django使用時(shí)需要安裝,并且檢測是否安裝成功,安裝過程簡單,但需要安裝很多相應(yīng)的庫,需要在老師的指導(dǎo)下完成。Django需要結(jié)合Pycharm和MySQL使用,根據(jù)老師講解,我們需要注意Django和MySQL的版本問題,如果版本問題沒有解決,則在數(shù)據(jù)遷移時(shí)會(huì)出現(xiàn)錯(cuò)誤,在老師的講解過程中,我們需要更改配置,在數(shù)據(jù)遷移時(shí)要注意中英文符號(hào)的轉(zhuǎn)換。Ajax是一種異步刷新技術(shù),即就是它可以在不重新加載的情況下對(duì)網(wǎng)頁進(jìn)行刷新,不需要加載,使操作更加迅速簡潔。在mysql中新建數(shù)據(jù)庫movie_sys圖3-5新建數(shù)據(jù)庫建立的數(shù)據(jù)庫會(huì)在后面建立DjangoWeb框架時(shí)連接使用DjangoWeb框架(后端)Django項(xiàng)目是一個(gè)Python定制框架,它源自一個(gè)在線新聞Web站點(diǎn),Django框架的核心組件有:用于創(chuàng)建模型的對(duì)象關(guān)系映射、為最終用戶設(shè)計(jì)的完美管理界面、一流的URL設(shè)計(jì)、設(shè)計(jì)者友好的模板語言、緩存系統(tǒng)。安裝DjangopipinstallDjango創(chuàng)建項(xiàng)目django-adminstartprojectmovie_sys圖3-6創(chuàng)建項(xiàng)目創(chuàng)建App進(jìn)入movie_sys目錄中pythonmanage.pystartappmovie圖3-7創(chuàng)建App編寫Model層fromdjango.dbimportmodels
#Createyourmodelshere.
classMovie(models.Model):
name=models.CharField(max_length=128,verbose_name="電影的名字")
time=models.CharField(max_length=128,verbose_name="電影的時(shí)間")
score=models.CharField(max_length=128,verbose_name="電影的評(píng)分")
country=models.CharField(max_length=128,verbose_name="電影的國家")
picture=models.CharField(max_length=128,verbose_name="電影的海報(bào)")
def__str__(self):
return'<Movie:{}>'.format()
classMeat:
verbose_name=verbose_name_plural="電影信息"
classUsers(models.Model):
username=models.CharField(max_length=30)
userpwd=models.CharField(max_length=30)配置settings.pyINSTALLED_APPS=[
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'movie',
]DATABASES={
#'default':{
#'ENGINE':'django.db.backends.sqlite3',
#'NAME':os.path.join(BASE_DIR,'db.sqlite3'),
#}
'default':{
'ENGINE':'django.db.backends.mysql',
'HOST':'',
'PORT':'3306',
'NAME':'movie_sys',
'USER':'root',
'PASSWORD':'root',
'OPTIONS':{'isolation_level':None}
}
}在mysql中創(chuàng)建庫pythonmanage.pymakemigrations#創(chuàng)建數(shù)據(jù)庫遷移文件pythonmanage.pymigrate#創(chuàng)建表pythonmanage.pycreatesuperuser#創(chuàng)建后臺(tái)登錄用戶圖3-7創(chuàng)建表、用戶界面設(shè)計(jì)登錄界面:<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="UTF-8">
<title>Title</title>
</head>
<h2>再次輸入密碼:<inputtype="password"><br></h2>
首頁界面:<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="UTF-8">
<title>Title</title>
<!--<linkrel="stylesheet"href="../static/css/mycss.css">-->
<styletype="text/css">
li{
list-style:none;
float:left;
width:450px;
}
</style>
</head>
<body>
歡迎{{username}}登錄<ahref="/outlogin">安全退出</a>
<hr>
<br>
{%formovinMovlist%}
<li>
<imgsrc="../static/img/{{mov.picture}}"width="100px"><br>
電影名稱:{{}}<br>
上映時(shí)間:{{mov.time}}<br>
豆瓣評(píng)分:{{mov.score}}<br>
電影的國家:{{mov.country}}<br>
<ahref="/editmov?movid={{mov.id}}">修改</a>
<ahref="/delmov?movid={{mov.id}}">刪除</a>
</li>
{%endfor%}
<br><ahref="/movadd">新增電影</a>
</body>
</html>增加界面:<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="UTF-8">
<title>電影的新增</title>
</head>
<body>
<formaction="/movadd"method="post">
{%csrf_token%}
<table>
<tr><td>電影名稱</td><td>{{}}</td></tr>
<tr><td>上映時(shí)間</td><td>{{form.time}}</td></tr>
<tr><td>電影評(píng)分</td><td>{{form.score}}</td></tr>
<tr><td>電影的國家</td><td>{{form.country}}</td></tr>
</table>
<inputtype="submit"value="添加"/
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 科研樓翻新合同終止通知
- 書店裝修員工合同樣本
- 自然人借款合同樣本
- 三農(nóng)村資源綜合利用路徑規(guī)劃
- 電子政務(wù)平臺(tái)建設(shè)及管理手冊(cè)
- 農(nóng)業(yè)信息化建設(shè)與管理作業(yè)指導(dǎo)書
- 擔(dān)保借款合同書
- 聘請(qǐng)博士協(xié)議書
- 項(xiàng)目管理與協(xié)調(diào)能力作業(yè)指導(dǎo)書
- 農(nóng)產(chǎn)品食品安全與質(zhì)量控制標(biāo)準(zhǔn)作業(yè)指導(dǎo)書
- 建設(shè)用地報(bào)批服務(wù)投標(biāo)方案(技術(shù)方案)
- 精裝修室內(nèi)施工組織部署
- 農(nóng)用拖拉機(jī)考試題庫
- GJB438C模板-軟件開發(fā)計(jì)劃(已按標(biāo)準(zhǔn)公文格式校準(zhǔn))
- 2023年政府采購評(píng)審專家考試真題及答案
- 云端數(shù)據(jù)加密與密鑰管理解決方案
- 毒麻藥品試題答案
- 醫(yī)療器械專業(yè)知識(shí)培訓(xùn)課件
- 傳統(tǒng)體育養(yǎng)生學(xué)
- DB4401∕T 33-2019 電梯托管標(biāo)準(zhǔn)化管理規(guī)范
- 醫(yī)院物業(yè)(保潔)技術(shù)服務(wù)投標(biāo)方案
評(píng)論
0/150
提交評(píng)論