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

下載本文檔

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

文檔簡(jiǎn)介

中國(guó)礦業(yè)大學(xué)計(jì)算機(jī)學(xué)院2018級(jí)本科生課程報(bào)告課程名稱(chēng)信息內(nèi)容安全報(bào)告題目知乎爬蟲(chóng)報(bào)告時(shí)間2021.7.6姓名何俊輝學(xué)號(hào)08182819任課教師曹天杰2020-2021(二)《信息內(nèi)容安全》課程報(bào)告評(píng)分表序號(hào)畢業(yè)要求課程教學(xué)目標(biāo)考查方式與考查點(diǎn)占比得分12.3目標(biāo)1:掌握信息內(nèi)容安全的基本概念、分類(lèi)、原理和相關(guān)技術(shù),能夠根據(jù)課程基本知識(shí)對(duì)信息內(nèi)容安全領(lǐng)域出現(xiàn)的問(wèn)題進(jìn)行歸類(lèi)、分析、并有初步分析和解決問(wèn)題的能力。通過(guò)課堂講授和課堂研討掌握信息內(nèi)容安全概念和理論知識(shí)。40%3.2目標(biāo)2:掌握信息內(nèi)容安全處理相關(guān)的理論、技術(shù)以及健全的評(píng)價(jià)體系,能夠根據(jù)具體問(wèn)題分析算法、設(shè)計(jì)算法、實(shí)現(xiàn)算法并能綜合評(píng)價(jià)算法。24.3目標(biāo)3:掌握信息內(nèi)容安全的基礎(chǔ)知識(shí),針對(duì)具體問(wèn)題和要求選擇正確的技術(shù)路線(xiàn),通過(guò)在實(shí)驗(yàn)環(huán)境中進(jìn)行仿真實(shí)驗(yàn)并能根據(jù)算法特點(diǎn)進(jìn)行攻擊測(cè)試和綜合性能評(píng)價(jià),得到具有參考價(jià)值的結(jié)論。課程報(bào)告;實(shí)現(xiàn)有關(guān)信息內(nèi)容安全的一個(gè)軟件系統(tǒng)。分析和對(duì)比各項(xiàng)技術(shù),選擇相應(yīng)的技術(shù)進(jìn)行算法設(shè)計(jì)并在實(shí)驗(yàn)環(huán)境中進(jìn)行仿真實(shí)驗(yàn)和性能評(píng)價(jià),得到有效結(jié)論。60%總分100%評(píng)閱人:2021年7月10日?qǐng)?bào)告摘要 隨著網(wǎng)絡(luò)信息的爆炸式增加,推薦算法愈發(fā)成熟,本次報(bào)告,使用爬蟲(chóng)技術(shù)爬取知乎的問(wèn)題內(nèi)容,來(lái)從另一層面對(duì)抗推薦算法的缺點(diǎn)。 爬蟲(chóng)是一種自動(dòng)化收集網(wǎng)絡(luò)信息的工具,可以短時(shí)間內(nèi)得到大量的所需信息。關(guān)鍵詞:爬蟲(chóng);知乎;問(wèn)題收集;

報(bào)告正文1問(wèn)題提出 現(xiàn)有的推薦模式下,長(zhǎng)時(shí)間瀏覽知乎后,推薦的話(huà)題會(huì)趨于單一的主題。2問(wèn)題分析 一個(gè)八位的索引確定一個(gè)問(wèn)題頁(yè)面瀏覽量評(píng)估問(wèn)題的質(zhì)量 我們可以通過(guò)遍歷id的方式設(shè)計(jì)爬蟲(chóng),并記錄下標(biāo)題和瀏覽量信息3爬蟲(chóng)設(shè)計(jì) 此爬蟲(chóng)可以分為三個(gè)模塊,分別是請(qǐng)求偽造、數(shù)據(jù)篩選、數(shù)據(jù)存儲(chǔ)。 使用請(qǐng)求偽造模擬瀏覽器訪問(wèn)知乎網(wǎng)站,并把id作為關(guān)鍵參數(shù)。 篩選返回的報(bào)文中的有用信息title和views。 最后,把得到的數(shù)據(jù)存儲(chǔ)在本地。3.1請(qǐng)求偽造偽造請(qǐng)求報(bào)文,模擬瀏覽器訪問(wèn)Requests是用python語(yǔ)言基于urllib編寫(xiě)的,采用的是Apache2Licensed開(kāi)源協(xié)議的HTTP庫(kù)。與urllib相比,Requests更加方便,可以節(jié)約我們大量的工作,建議爬蟲(chóng)使用Requests庫(kù)我們調(diào)用requests庫(kù)中的get方法。UserAgent中文名為用戶(hù)代理,簡(jiǎn)稱(chēng)UA,它是一個(gè)特殊字符串頭,使得服務(wù)器能夠識(shí)別客戶(hù)使用的操作系統(tǒng)及版本、CPU類(lèi)型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語(yǔ)言、瀏覽器插件等。3.2數(shù)據(jù)篩選 只需要返回報(bào)文中的標(biāo)題和瀏覽量數(shù)據(jù)使用beautifulsoup包中的函數(shù)可以篩選出html代碼中的各種標(biāo)簽內(nèi)容BeautifulSoup提供一些簡(jiǎn)單的、python式的函數(shù)用來(lái)處理導(dǎo)航、搜索、修改分析樹(shù)等功能。它是一個(gè)工具箱,通過(guò)解析文檔為用戶(hù)提供需要抓取的數(shù)據(jù),因?yàn)楹?jiǎn)單,所以不需要多少代碼就可以寫(xiě)出一個(gè)完整的應(yīng)用程序。BeautifulSoup自動(dòng)將輸入文檔轉(zhuǎn)換為Unicode編碼,輸出文檔轉(zhuǎn)換為utf-8編碼。你不需要考慮編碼方式,除非文檔沒(méi)有指定一個(gè)編碼方式,這時(shí),BeautifulSoup就不能自動(dòng)識(shí)別編碼方式了。然后,你僅僅需要說(shuō)明一下原始編碼方式就可以了。BeautifulSoup已成為和lxml、html6lib一樣出色的python解釋器,為用戶(hù)靈活地提供不同的解析策略或強(qiáng)勁的速度。3.3數(shù)據(jù)存儲(chǔ) CSV(逗號(hào)分隔值文件格式)逗號(hào)分隔值(Comma-SeparatedValues,CSV,有時(shí)也稱(chēng)為字符分隔值,因?yàn)榉指糇址部梢圆皇嵌禾?hào)),其文件以純文本形式存儲(chǔ)表格數(shù)據(jù)(數(shù)字和文本)。純文本意味著該文件是一個(gè)字符序列,不含必須像二進(jìn)制數(shù)字那樣被解讀的數(shù)據(jù)。CSV文件由任意數(shù)目的記錄組成,記錄間以某種換行符分隔;每條記錄由字段組成,字段間的分隔符是其它字符或字符串,最常見(jiàn)的是逗號(hào)或制表符。通常,所有記錄都有完全相同的字段序列。通常都是純文本文件。把數(shù)據(jù)存儲(chǔ)在當(dāng)前文件夾的question.csv中 4實(shí)驗(yàn)改進(jìn)4.1IP代理大部分網(wǎng)站都有反爬蟲(chóng)機(jī)制,短時(shí)間內(nèi)檢測(cè)到大量同一IP的請(qǐng)求時(shí),觸發(fā)驗(yàn)證碼或者封禁IP。代理服務(wù)器是介于瀏覽器和Web服務(wù)器之間的一臺(tái)服務(wù)器,當(dāng)你通過(guò)代理服務(wù)器上網(wǎng)瀏覽時(shí),瀏覽器不是直接到Web服務(wù)器去取回網(wǎng)頁(yè),而是向代理服務(wù)器發(fā)出請(qǐng)求,由代理服務(wù)器來(lái)取回瀏覽器所需要的信息,并傳送給你的瀏覽器。于是,我們可以通過(guò)IP代理繞過(guò)這個(gè)檢測(cè)機(jī)制4.2多進(jìn)程 多進(jìn)程爬蟲(chóng)即同時(shí)啟用多個(gè)爬蟲(chóng)ID一共八位,且存在大量的無(wú)效ID,理論上爬出全部問(wèn)題要爬一億次,而平均單次爬取要0.3秒。所以需要用到大量的高匿IP代理和多進(jìn)程使多進(jìn)程需要考慮數(shù)據(jù)存儲(chǔ)的問(wèn)題,本項(xiàng)目還未實(shí)現(xiàn)5實(shí)驗(yàn)演示運(yùn)行zhihu.py,程序?qū)膓uestions.csv中讀取最后一條記錄的id,并持續(xù)+1迭代查詢(xún)Ip.txt中存放可以使用的代理ipQuestions.csv存放爬取的數(shù)據(jù)Zhihu.py是主要的執(zhí)行代碼程序運(yùn)行后,逐一id遍歷,沒(méi)有內(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':"無(wú)",'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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論