網(wǎng)絡(luò)空間安全概論 實驗7網(wǎng)絡(luò)爬蟲 租房信息爬蟲及數(shù)據(jù)分析_第1頁
網(wǎng)絡(luò)空間安全概論 實驗7網(wǎng)絡(luò)爬蟲 租房信息爬蟲及數(shù)據(jù)分析_第2頁
網(wǎng)絡(luò)空間安全概論 實驗7網(wǎng)絡(luò)爬蟲 租房信息爬蟲及數(shù)據(jù)分析_第3頁
網(wǎng)絡(luò)空間安全概論 實驗7網(wǎng)絡(luò)爬蟲 租房信息爬蟲及數(shù)據(jù)分析_第4頁
網(wǎng)絡(luò)空間安全概論 實驗7網(wǎng)絡(luò)爬蟲 租房信息爬蟲及數(shù)據(jù)分析_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

中國礦業(yè)大學(xué)計算機學(xué)院2018級本科生課程報告課程名稱信息內(nèi)容安全報告題目租房信息爬蟲及數(shù)據(jù)分析報告時間2021.7.6姓名李辰學(xué)號08182899任課教師曹天杰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)的問題進行歸類、分析、并有初步分析和解決問題的能力。通過課堂講授和課堂研討掌握信息內(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ù)算法特點進行攻擊測試和綜合性能評價,得到具有參考價值的結(jié)論。課程報告;實現(xiàn)有關(guān)信息內(nèi)容安全的一個軟件系統(tǒng)。分析和對比各項技術(shù),選擇相應(yīng)的技術(shù)進行算法設(shè)計并在實驗環(huán)境中進行仿真實驗和性能評價,得到有效結(jié)論。60%總分100%評閱人:2021年7月10日目錄TOC\o"1-3"\h\u21828報告摘要 419060報告正文 429376一、對58同城租房信息爬取 4177191、網(wǎng)頁內(nèi)容定位爬取 4749(1)租房價格 49449(2)租房標(biāo)題 432335(3)其他租房信息 55092、反爬蟲機制繞過 67556(1)訪問時延設(shè)置 65293(2)偽造UA頭 622952(3)繞過SSL認(rèn)證,設(shè)置verify=False 613382(4)當(dāng)過多,過快的對58同城網(wǎng)站進行爬取,導(dǎo)致IP封禁 6278853、文件導(dǎo)出和去重 723012(1)數(shù)據(jù)處理過程 715596(2)數(shù)據(jù)文件展示 825594、IP代理池的IP過濾 89332(1)從網(wǎng)上爬取IP 825466(2)對IP進行過濾 92305、租房網(wǎng)頁鏈接有效性判斷 1018453二、對導(dǎo)出數(shù)據(jù)進行分析 11182731、導(dǎo)入數(shù)據(jù)格式處理 1129031(1)去除size中的㎡ 1118498(2)按區(qū)域處理數(shù)據(jù) 1178982、數(shù)據(jù)可視化 1115308(1)直方圖顯示戶型 1211314(2)折線圖顯示各區(qū)域平均祖金 1218681(3)柱狀圖顯示各區(qū)域租房數(shù)量 127595(4)圖表展示 13報告摘要摘要:在數(shù)據(jù)爆炸的時代,繁雜冗余的數(shù)據(jù)讓人眼花繚亂。我們需要對數(shù)據(jù)進行收集和分析,讓我們對數(shù)據(jù)有更直觀的認(rèn)識。本報告主要對58同城的租房信息進行爬取和分析,最終以圖表的方式顯示出來。關(guān)鍵詞:爬蟲;分析報告正文對58同城租房信息爬取網(wǎng)頁內(nèi)容定位爬取租房價格分析圖1.1.1中的價格位置,可以直接復(fù)制其中的CSS路徑。(這里是以火狐為例,如果是谷歌的話復(fù)制selector路徑)圖1.1.1通過空列表暫時存儲爬取的價格圖1.1.2租房標(biāo)題分析圖1.2.1中的標(biāo)題位置,通過節(jié)點的迭代向下尋找到標(biāo)題所在的節(jié)點。圖1.2.1如圖1.2.2其中使用正則表達(dá)式去除不需要的噪音信息。圖1.2.2其他租房信息如圖1.3.1,其他租房信息按照標(biāo)題的方式進行爬取和去除噪音信息。圖1.3.2反爬蟲機制繞過訪問時延設(shè)置這里的time是用來設(shè)置休眠時間,random使用每次訪問時延不同,防止被識別出。time.sleep(random.randint(0,3))偽造UA頭UA頭使用的是fake_useragent庫使每次訪問爬取的時候都采用的時不同的UA頭。headers

=

{'User-Agent':str(UserAgent().random)}繞過SSL認(rèn)證,設(shè)置verify=False如圖2.3.1所示,若未設(shè)置時,會出現(xiàn)人機驗證,阻止進一步爬取。圖2.3.1設(shè)置后如圖2.3.2所示圖2.3.2當(dāng)過多,過快的對58同城網(wǎng)站進行爬取,導(dǎo)致IP封禁如圖2.4.1所示,被檢測到對本機IP實施了封禁。圖2.4.1這個時候可以考慮使用IP代理池或者等一會兒解封。文件導(dǎo)出和去重(1)數(shù)據(jù)處理過程如圖3.1.1,第一部分把爬取的數(shù)據(jù)導(dǎo)入到cav中,第二部分把所有的文件都合并到hebing.csv當(dāng)中,第三部分去除hebing.csv中的重復(fù)數(shù)據(jù)。圖3.1.1數(shù)據(jù)文件展示數(shù)據(jù)格式如圖3.2.1所示,共有3576條數(shù)據(jù)。圖3.2.1IP代理池的IP過濾IP代理池的建立主要包括四個步驟:從網(wǎng)上爬取IP如圖4.1.1所示,將所有的IP加入到IP.txt中。圖4.1.1對IP進行過濾如圖4.2.1所示,直接訪問/,返回本機的IP。圖4.2.1如圖4.2.2所示,通過設(shè)置代理proxies,對每一個IP進行訪問/。圖4.2.2租房網(wǎng)頁鏈接有效性判斷如圖5.1所示,使用oper.open()函數(shù)訪問連接,如果IP正常就返回狀態(tài)碼為200。圖5.1如圖5.2所示,在文件最后構(gòu)造的URL顯示訪問錯誤,其他正常的URL顯示沒問題。圖5.2對導(dǎo)出數(shù)據(jù)進行分析導(dǎo)入數(shù)據(jù)格式處理去除size中的㎡data_new

=

np.array([])

data_size

=

file_data['size'].values

for

i

in

data_size:

data_new

=

np.append(data_new,np.array(i[:-1]))

data_new

=

data_new.astype(np.float64)

file_data.loc[:,'size']=data_new按區(qū)域處理數(shù)據(jù)

#計算區(qū)域數(shù)量

number_address=len(file_data["address"].unique())

df_all

=

pd.DataFrame({"地址":

file_data["address"].unique(),

"房租總金額":

[0]*number_address,

"總面積":[0]*number_address,

"數(shù)量":[0]*number_address})

sum_price

=

file_data["price"].groupby(file_data["address"]).sum()

sum_area

=

file_data["size"].groupby(file_data["address"]).sum()

count_area_count

=

file_data.groupby(file_data["address"]).count()

df_all["房租總金額"]

=

sum_price.values

df_all["總面積"]

=

sum_area.values

df_all["數(shù)量"]

=

count_area_count.values

df_all["每平米租金(元)"]

=

round(df_all["房租總金額"]

/

df_all["總面積"],

2)

#print(df_all)數(shù)據(jù)可視化首先處理中文字符顯示問題

#處理圖形顯示問題

plt.rcParams['font.sans-serif']=['SimHei']

#用來正常顯示中文標(biāo)簽

plt.rcParams['axes.unicode_minus']=False

#用來正常顯示負(fù)號直方圖顯示戶型如圖2.1.1所示,通過LayoutNumber()函數(shù)對戶型數(shù)據(jù)中的數(shù)字進行提取,通過AnalysisLayout()函數(shù)顯示直方圖。圖2.1.1折線圖顯示各區(qū)域平均祖金

#

顯示折線圖

ax1

=

fig.add_subplot(111)

ax1.plot(l,

price,

"or-",

label="價格")

for

i,

(_x,

_y)

in

enumerate(zip(l,

price)):

plt.text(_x+0.2,

_y,

price[i])

ax1.set_ylim([0,

40])

ax1.set_ylabel("價格")

plt.legend(loc="upper

right")柱狀圖顯示各區(qū)域租房數(shù)量

#

顯示條形圖

ax2

=

ax1.twinx()

p

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論