版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
中國礦業(yè)大學(xué)計算機(jī)學(xué)院2018級本科生課程報告課程名稱信息內(nèi)容安全報告題目知乎爬蟲報告時間2021.7.6姓名何俊輝學(xué)號08182819任課教師曹天杰2020-2021(二)《信息內(nèi)容安全》課程報告評分表序號畢業(yè)要求課程教學(xué)目標(biāo)考查方式與考查點占比得分12.3目標(biāo)1:掌握信息內(nèi)容安全的基本概念、分類、原理和相關(guān)技術(shù),能夠根據(jù)課程基本知識對信息內(nèi)容安全領(lǐng)域出現(xiàn)的問題進(jìn)行歸類、分析、并有初步分析和解決問題的能力。通過課堂講授和課堂研討掌握信息內(nèi)容安全概念和理論知識。40%3.2目標(biāo)2:掌握信息內(nèi)容安全處理相關(guān)的理論、技術(shù)以及健全的評價體系,能夠根據(jù)具體問題分析算法、設(shè)計算法、實現(xiàn)算法并能綜合評價算法。24.3目標(biāo)3:掌握信息內(nèi)容安全的基礎(chǔ)知識,針對具體問題和要求選擇正確的技術(shù)路線,通過在實驗環(huán)境中進(jìn)行仿真實驗并能根據(jù)算法特點進(jìn)行攻擊測試和綜合性能評價,得到具有參考價值的結(jié)論。課程報告;實現(xiàn)有關(guān)信息內(nèi)容安全的一個軟件系統(tǒng)。分析和對比各項技術(shù),選擇相應(yīng)的技術(shù)進(jìn)行算法設(shè)計并在實驗環(huán)境中進(jìn)行仿真實驗和性能評價,得到有效結(jié)論。60%總分100%評閱人:2021年7月10日報告摘要 隨著網(wǎng)絡(luò)信息的爆炸式增加,推薦算法愈發(fā)成熟,本次報告,使用爬蟲技術(shù)爬取知乎的問題內(nèi)容,來從另一層面對抗推薦算法的缺點。 爬蟲是一種自動化收集網(wǎng)絡(luò)信息的工具,可以短時間內(nèi)得到大量的所需信息。關(guān)鍵詞:爬蟲;知乎;問題收集;
報告正文1問題提出 現(xiàn)有的推薦模式下,長時間瀏覽知乎后,推薦的話題會趨于單一的主題。2問題分析 一個八位的索引確定一個問題頁面瀏覽量評估問題的質(zhì)量 我們可以通過遍歷id的方式設(shè)計爬蟲,并記錄下標(biāo)題和瀏覽量信息3爬蟲設(shè)計 此爬蟲可以分為三個模塊,分別是請求偽造、數(shù)據(jù)篩選、數(shù)據(jù)存儲。 使用請求偽造模擬瀏覽器訪問知乎網(wǎng)站,并把id作為關(guān)鍵參數(shù)。 篩選返回的報文中的有用信息title和views。 最后,把得到的數(shù)據(jù)存儲在本地。3.1請求偽造偽造請求報文,模擬瀏覽器訪問Requests是用python語言基于urllib編寫的,采用的是Apache2Licensed開源協(xié)議的HTTP庫。與urllib相比,Requests更加方便,可以節(jié)約我們大量的工作,建議爬蟲使用Requests庫我們調(diào)用requests庫中的get方法。UserAgent中文名為用戶代理,簡稱UA,它是一個特殊字符串頭,使得服務(wù)器能夠識別客戶使用的操作系統(tǒng)及版本、CPU類型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語言、瀏覽器插件等。3.2數(shù)據(jù)篩選 只需要返回報文中的標(biāo)題和瀏覽量數(shù)據(jù)使用beautifulsoup包中的函數(shù)可以篩選出html代碼中的各種標(biāo)簽內(nèi)容BeautifulSoup提供一些簡單的、python式的函數(shù)用來處理導(dǎo)航、搜索、修改分析樹等功能。它是一個工具箱,通過解析文檔為用戶提供需要抓取的數(shù)據(jù),因為簡單,所以不需要多少代碼就可以寫出一個完整的應(yīng)用程序。BeautifulSoup自動將輸入文檔轉(zhuǎn)換為Unicode編碼,輸出文檔轉(zhuǎn)換為utf-8編碼。你不需要考慮編碼方式,除非文檔沒有指定一個編碼方式,這時,BeautifulSoup就不能自動識別編碼方式了。然后,你僅僅需要說明一下原始編碼方式就可以了。BeautifulSoup已成為和lxml、html6lib一樣出色的python解釋器,為用戶靈活地提供不同的解析策略或強(qiáng)勁的速度。3.3數(shù)據(jù)存儲 CSV(逗號分隔值文件格式)逗號分隔值(Comma-SeparatedValues,CSV,有時也稱為字符分隔值,因為分隔字符也可以不是逗號),其文件以純文本形式存儲表格數(shù)據(jù)(數(shù)字和文本)。純文本意味著該文件是一個字符序列,不含必須像二進(jìn)制數(shù)字那樣被解讀的數(shù)據(jù)。CSV文件由任意數(shù)目的記錄組成,記錄間以某種換行符分隔;每條記錄由字段組成,字段間的分隔符是其它字符或字符串,最常見的是逗號或制表符。通常,所有記錄都有完全相同的字段序列。通常都是純文本文件。把數(shù)據(jù)存儲在當(dāng)前文件夾的question.csv中 4實驗改進(jìn)4.1IP代理大部分網(wǎng)站都有反爬蟲機(jī)制,短時間內(nèi)檢測到大量同一IP的請求時,觸發(fā)驗證碼或者封禁IP。代理服務(wù)器是介于瀏覽器和Web服務(wù)器之間的一臺服務(wù)器,當(dāng)你通過代理服務(wù)器上網(wǎng)瀏覽時,瀏覽器不是直接到Web服務(wù)器去取回網(wǎng)頁,而是向代理服務(wù)器發(fā)出請求,由代理服務(wù)器來取回瀏覽器所需要的信息,并傳送給你的瀏覽器。于是,我們可以通過IP代理繞過這個檢測機(jī)制4.2多進(jìn)程 多進(jìn)程爬蟲即同時啟用多個爬蟲ID一共八位,且存在大量的無效ID,理論上爬出全部問題要爬一億次,而平均單次爬取要0.3秒。所以需要用到大量的高匿IP代理和多進(jìn)程使多進(jìn)程需要考慮數(shù)據(jù)存儲的問題,本項目還未實現(xiàn)5實驗演示運(yùn)行zhihu.py,程序?qū)膓uestions.csv中讀取最后一條記錄的id,并持續(xù)+1迭代查詢Ip.txt中存放可以使用的代理ipQuestions.csv存放爬取的數(shù)據(jù)Zhihu.py是主要的執(zhí)行代碼程序運(yùn)行后,逐一id遍歷,沒有內(nèi)容的id顯示running,爬取到內(nèi)容則打印標(biāo)題和瀏覽量importimportrequests
frombs4importBeautifulSoup
importcsv
defmain(id):
url='/question/'+str(id)
req(url,id)
defreq(url,id):
headers={
'accept-language':'zh-CN,zh;q=0.9',
'origin':'',
'referer':'/question/290268306',
'user-agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/69.0.3497.100Safari/537.36'
}
#globalposition
#fo=open("ip.txt","r")
#fo.seek(position,0)
#proxy=fo.readline()
#
#proxies={
#"http":"http://%(proxy)s/"%{'proxy':proxy},
#"https":"http://%(proxy)s/"%{'proxy':proxy}
#}
#r=requests.get(url,headers=headers,proxies=proxies,timeout=3)
6代碼展示r=r=requests.get(url,headers=headers,timeout=3)
#except(requests.exceptions.ProxyError,requests.exceptions.ConnectTimeout):
#position=fo.tell()
#print(position)
#return
soup=BeautifulSoup(r.text,'lxml')
#print(soup.text)
withopen('questions.csv',mode='a+',newline='')ascsv_file:
fieldnames=['id','title','views']
writer=csv.DictWriter(csv_file,fieldnames=fieldnames)
writer.writerow({'id':id,'title':"無",'views':"0"})
if(soup.title.string!="404-知乎"):
num=soup.select(".NumberBoard-itemValue")
print("found---",soup.title.string)
withopen('questions.csv',mode='a+',newline='')ascsv_file:
fieldnames=['id','title','views']
writer=csv.DictWriter(csv_file,fieldnames=fieldnames)
writer.writerow({'id':id,'title':soup.title.string,'views':num[1].text.strip()})
if__name__=='__main__':
withopen('questions.csv',mode='r+')ascsv_file:
reader=csv.reader(csv_file)
forlineinreader:
start=line[0]
print(start)
start=int(start)+1
a=0
#position=0
foriinrang
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年出租車公司股權(quán)結(jié)構(gòu)優(yōu)化與調(diào)整協(xié)議3篇
- 2025年度基礎(chǔ)設(shè)施建設(shè)合同預(yù)付款協(xié)議書3篇
- 2024版聯(lián)合養(yǎng)雞協(xié)議范本及指導(dǎo)綱要版B版
- 2025年度幼兒園安全窗簾采購與安裝合同3篇
- 二零二五年度跨國并購股權(quán)整合管理合同3篇
- 二零二五年度航空航天用變壓器研發(fā)生產(chǎn)合同范本3篇
- 2024物權(quán)擔(dān)保期限電子商務(wù)平臺服務(wù)合同3篇
- 2025年樹木種植基地合作與市場推廣合同范本3篇
- 2025年度礦業(yè)權(quán)轉(zhuǎn)讓與環(huán)境保護(hù)責(zé)任書3篇
- 基于二零二五年度業(yè)績的企業(yè)擴(kuò)張合同2篇
- 【云南省中藥材出口現(xiàn)狀、問題及對策11000字(論文)】
- 服裝板房管理制度
- 2024年縣鄉(xiāng)教師選調(diào)進(jìn)城考試《教育學(xué)》題庫及完整答案(考點梳理)
- 河北省興隆縣盛嘉恒信礦業(yè)有限公司李杖子硅石礦礦山地質(zhì)環(huán)境保護(hù)與治理恢復(fù)方案
- 第七章力與運(yùn)動第八章壓強(qiáng)第九章浮力綜合檢測題(一)-2023-2024學(xué)年滬科版物理八年級下學(xué)期
- 醫(yī)療機(jī)構(gòu)診療科目名錄(2022含注釋)
- 微視頻基地策劃方案
- 光伏項目質(zhì)量評估報告
- 八年級一本·現(xiàn)代文閱讀訓(xùn)練100篇
- 2023年電池系統(tǒng)測試工程師年度總結(jié)及下一年計劃
- 應(yīng)急預(yù)案評分標(biāo)準(zhǔn)表
評論
0/150
提交評論