版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
中國礦業(yè)大學計算機學院
且L級本科生課程報告
課程名稱信息內(nèi)容安全
報告題目豆瓣電影熱門榜單的爬蟲
報告時間202263()
姓名鐘昌甫
學號08193050_________
任課教師曹天杰_________
2021-2022(-)《信息內(nèi)容安全》評分表
試題類型
考核類別考核內(nèi)容支撐課程目標與分值比分數(shù)
例
目標3:掌握信息內(nèi)容安仝的基礎知識,
課程報告(論文針對具體問題和要求選擇正確的技術路
課程報告,
結(jié)課考核綜述、設計、實線,通過在實驗環(huán)境中進行仿真實驗并能
100%
現(xiàn)、寫作規(guī)范)根據(jù)算法特點進行攻擊測試和綜合性能
評價,得到具有參考價值的結(jié)論。
目標1:掌握信息內(nèi)容安全的基本概念、
分類、原理和相關技術,能夠根據(jù)課程基系統(tǒng)演示
1.基本概念、原
本知識對信息內(nèi)容安全領域出現(xiàn)的問題及解說,
理
進行歸類、分析、并有初步分析和解決問30%
題的能力。
目標2:掌握信息內(nèi)容安全處理相關的理
PPT講解
過程考核2.系統(tǒng)設計與論、技術以及健全的評價體系,能夠根據(jù)
與答辯,
分析具體問題分析算法、設計算法、實現(xiàn)算法
50%
并能綜合評價算法。
3.基本概念、作業(yè)或測
目標1
原理試,20%
過程考核:
結(jié)課考核與過程考核比例結(jié)課考核:60%
40%
評閱人:
2022年7月10日
報告摘要
關鍵詞:爬蟲即網(wǎng)絡爬蟲,是一種自動獲取網(wǎng)頁內(nèi)容的程序。是搜索引
擎的重要組成部分,因此搜索引擎優(yōu)化很大程度上就是針對爬蟲而做出
的優(yōu)化。爬取豆瓣電影的熱門榜,獲取熱門榜信息并生成excel文件實現(xiàn)
數(shù)據(jù)可視化
下面我們就使用requests和xpath來爬取豆瓣電影中的“電影名”、“導演”、
“演員”、“評分”等信息。
爬蟲前python環(huán)境的安裝:
打開cmd,輸入以下指令:
pipinstallrequests
pipinstallIxml
豆瓣網(wǎng)未登陸的情況卜無法采集數(shù)據(jù),requests.get會返回418,418的
意思是被網(wǎng)站的反爬程序識別返回的結(jié)果,所以采集之前要先登錄網(wǎng)站,
并且復制網(wǎng)站的User-Agent和Cookie信息,并且把User-Agent和
Cookie轉(zhuǎn)化為字典格式,網(wǎng)頁鼠標右鍵——檢查
------NetworkDoc------F5刷新網(wǎng)址(這步很重要)選擇Name下
面的4top250?start=0&filter=,------Headers------Cookie,User-Agent1位
于cookie下面)
基礎班代碼(備注都已表明):fromfileinputimportfilename
importjson
importrequests
importpandas
frombs4importBeautifulSoup
#網(wǎng)址
url=r/j/new_search_subjects?sort=U&range=OJO&
tags=&start=O'
#導航
header={'User-Agent':'Mozina/5.0(Windov/sNT10.0;Win64;x64)
AppleWebKit/537.36(KHTML,likeGecko)Chrome/102.0.5005.124
Safari/537.36Edg/102.0.1245.44')
#目的地
response=requests.get(url=url,headers=header)
#獲取網(wǎng)頁源代碼
baoxian=response.text
#轉(zhuǎn)變數(shù)據(jù),將數(shù)據(jù)進行分層
datal=json.loads(baoxian)
#電影的數(shù)量
num=len(data1['data'])
#設置表頭以及規(guī)格
tou=['directors',,rate,,'title','url1]
guige=pandas.DataFrame(index=range(num),cohimns=tou)
foriinrange(num):
guige.loc[i,directors']=data1「data'][i]「directors']
guige.loc[i,'rate']=data1['data'][i]['rate']
guige.locti/tille^data1['data1][i]['title']
guige.loc[i;urr]=datal['data'][i]['urr]
filename-I.xlsx
guige.to_excel(filename)
由于本段代碼需要人為手動獲取每個頁面的User-Agent和Cookie信息,
故優(yōu)化代碼,通過觀察可以看出,豆瓣電影top250榜單總共有10個頁
面,每個頁面有25部電影,總共250部電影。并且,這10個頁面的網(wǎng)
址有一定的規(guī)律性,那就是網(wǎng)址中的start位置,第1個頁面start=(),第
2個頁面start=25,第10個頁面start=225,可以推測出這10個頁面的
網(wǎng)址中的start呈現(xiàn)出[0,25,50,75,100,125,150,175,200,225]的序列分
布規(guī)律。于是可以通過python循環(huán)自動生成10個網(wǎng)址,并且把10個網(wǎng)
址存放在列表中。代碼如下(備注已標注):
#導入庫
iiiipoilrequests
frombs4importBeautifulSoup
importtime
importpandasaspd
fromdatetimeimportdate
#定義函數(shù),用來處理User-Agent和Cookie
defua_ck():
III
網(wǎng)站需要登錄才能采集,需要從Network-Doc里復制User-Agent
和Cookie,Cookie要轉(zhuǎn)化為字典
user_agent={
'User-Age”:'Mozilla/5.0(WindowsNT10.0;Win64;x64)
AppleWebKit/537.36(KHTML,likeGecko)Chrome/85.0.4183.102
Safari/537.36,)
cookies='11="118202";bid=FsStcocWuPQ;
_vwo_uuid_v2=D65179C81F8EE8041E5F8605041534542|e1ed6add019a5c
f6cdb06398640e7fe6;gr_user_id=43e3a769-fflc-4abe-b1c3-f7d5b28082de;
douban-fav-remind=1;push_doumail_num=0;douban-profile-remind=I;
viewed=M26870407_20438158_10799082_3C43970_35174681_26929955_3
932365一26886337_27667378_33419041
_pk_ref.l00001.4cf6=%5B%22%22%2C%22%22%2C1600420934%2C%22
https%3A%2F%2F%2Flink%3FurI%3DuCRtekAbCAhUknI
Q9g23ZVQuuGcvpkHuD4DlXS-dKKFXIpgjJwlSGuJm_tBya8dT%26wd%3
D%26eqid%3Dc67bc9250001c8ee000000055f647c42%22%5D;
_pk_ses.1000()1.4cf6=*;
—utmz=30149280.1600420934.91.83.utmcsr=baidu|utmccn=(organic)|utmc
md=organic;
_utma=30149280.1986063068.1597310055.1600241651.1600420934.91;
_utmc=30149280;_utmb=223695600420934;
_utma=223695111.1305332624.1597310055.1600228709.16()0420934.50;
—ulniz-223695111.1600420934.50.45.uliii(;M-baidu|uliiK;cii-(orgaiiic)|ulinc
md=organic;_utmc=223695111;ap_v=0,6.0;
dbc!2=nl77996890:FXynNkgIDSMH;ck=5mGV;_utmt=1;
_utmv=30149280.17799;_utmb=301492600420934;
push_noty_num=0;
_pk_id.l00001.4cf6=991c66698d6e616d.i597310055.50.1600420993.16002
287087
#Cookie轉(zhuǎn)化為字典
cookies=cookies.split(';')
cookies_dict={)
foriincookies:
cookies_dict[i.split(,=*)[0]]=i.split('=')[l]
returnuser_agent,cookies_dict
#定義函數(shù),用于獲取豆瓣top250每一個頁面的網(wǎng)址
defget_urls(n):
111
n:頁面數(shù)量
?n
urls=[]#用于存放網(wǎng)址
num=(11-1)*25+1
foriinrange(0,num,25):
url='/top250?start={}&filter=,.formai(i)
urls.append(url)
returnurls
#定義函數(shù),獲取每個頁面25部電影的鏈接
defgct_movics_url(url,u_a,c_d):
III
url:每一個頁面的鏈接
u_a:User-Agent
c_d:cookies
III
html=requests.get(url,
headers二u_a,#加載User-Agent
cookies=c_d)#力口載cookie
html.encoding=html.apparent_encoding#解決亂碼的萬金油方法
ifhtml.status_code==200:
print('網(wǎng)頁訪問成功,KR:{}\n'.format(html.status_code))
soup=BeautifulSoup(html.text,'html.parser')#用html.parser來解
析網(wǎng)頁
items=soup.find('or,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_url
time.sleep(0.4)#設置時間間隔,0.4秒采集一次,避免頻繁登錄
網(wǎng)頁
#定義函數(shù),獲取每一部電影的詳細信息
defget_movie_info(href,u_a,c_d):
href:每一部電影的鏈接
u_a:User-Agent
c_d:cookies
IM
html=requests.get(href,
hcaders=u_a,
cookies=c_d)
soup=BeautifulSoup(html.text,'htmLparser')#用html.parser來解
析網(wǎng)頁
item=soup.find('div\id='content')
movie={}#新建字典,存放電影信息
#電影名稱
movie「電影名稱']=item.hl.span.text
#導演、類型、制片國家/地區(qū)、語言、上映時間、片長(部分電影
這些信息不全,先全部采集,留待數(shù)據(jù)分析時處理)
movie['電影其他信息口=item.find(
'div:id-info').text.rcplaceC*,'^.splitC^n')
foriinmovie「電影其他信息]:
if':'ini:
movie[i.split(,:,)[0]]=i.split(':')ll]
else:
continue
#豆瓣評分、評分人數(shù)
movie『評分']=item.find('div\id='interest_sectr).find(
'div',class_=*rating_selfclearfix').find('strong',class_=,ll
rating_num').text
movie['評分人數(shù)']=item.find(*div',id-interest_sectr).find('div',
class_='rating_selfclearfix').find(
'div',class_-rating_sum').findCspan',property-v:votes').text
#電影獲獎情況
returnmovie
tim已sleep(0.4)#0.4秒采集一次,避免頻繁登錄網(wǎng)頁
#設置主函數(shù),運行上面設置好的函數(shù)
defmain():
?II
n:頁面數(shù)量,總共有10個頁面
u_a:User-Agent
c_d:cookies
n=10#頁面數(shù)量,總共有10個頁面
printC開始采集數(shù)據(jù),預計耗時2分鐘)
#處理User-Agent和Cookie
login=ua_ck()
u_a=login|0]
c_d=login|ll
#獲取豆瓣lop250每一頁的鏈接
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 油茶租賃合同范本
- 高考全國卷思想政治考試卷題庫(含答案)
- 中糧集團高級管理崗位面試問題集
- 面試題集及答案解析針對市場調(diào)研員
- 建筑行業(yè)預算員招聘問題集
- 物聯(lián)網(wǎng)安防技術開發(fā)專家答案參考書目
- 航天科技領域考試題集及答案
- 2025年新型傳媒技術研發(fā)中心可行性研究報告
- 2025年兒童早教中心建設與運營項目可行性研究報告
- 2025年新零售(O2O模式)項目可行性研究報告
- (新教材)部編人教版三年級上冊語文 第25課 手術臺就是陣地 教學課件
- 2026天津農(nóng)商銀行校園招聘考試歷年真題匯編附答案解析
- 2025重慶市環(huán)衛(wèi)集團有限公司招聘27人筆試歷年參考題庫附帶答案詳解
- 鉆井安全操作規(guī)程
- 精密減速機行業(yè)發(fā)展現(xiàn)狀及趨勢預測報告2026-2032
- 中小學《信息技術》考試試題及答案
- 2025及未來5年掛鐘機芯項目投資價值分析報告
- IPO融資分析師融資報告模板
- 搏擊裁判員培訓課件
- 2024年北京廣播電視臺招聘真題
- 危險廢物安全措施課件
評論
0/150
提交評論