基於http s 協議的模板化爬蟲設計

2022-01-19 07:59:57 字數 2592 閱讀 4231

本文總共三章,前面兩章廢話吐槽比較多,想看結果的話,直接看第三章(後續會更新,最近忙著畢設呢,畢設也是我自己做的,關於射頻卡的,有時間我也放上來,哈哈)。

首先吐槽一下,標題取得好水,原諒我是一枚耿直的工科男。系統框圖如下所示,簡單看一下,對整體有個把握,總體由4個部分組成

說點題外話,關於爬蟲的的實現,網上很多,但是只要你不是我這樣的大老粗,你仔細看就會發現,所有的實現基本都是機械抓取url,最為致命的是抓取的url還有可能是相對url。那什麼獲取個性化資料就有點大海撈針的感覺了。哈哈,自戀一下,本爬蟲就可以大海撈針(你也可以當笑話看,否則這玩意太枯燥了)。其實我感覺的話,爬蟲的核心無非就兩個:一是要能很好的處理url,二是方便獲取想要的資料。至於什麼效率,鄙人認為,在這個計算機處理能力飛速提示的年代,不是那麼重要。

下面是整個引擎執行流程圖:

正所謂實踐是檢驗真理的唯一標準,這裡以抓取阿里巴巴旗下螞蟻金服的**資料為例子,進行簡單講解一下。

3.1 定義乙個基於該**的引擎類。此類需要匯入我開發的包,然後繼承自spider。spider有幾個函式是用於子類過載的。主要的也就是下面的三個過載子函式.詳情看注釋

public

class alifundtion extends

spider

private

void

initweboptions()

/*** 通過過載這個函式,我們這裡只抓取螞蟻金服首頁展示的**資料,因為它首頁包含了所有的**,

* @param

html 抓取到的網頁

* @param

url 該網頁對應的url

* @param

que url佇列

*/@override

protected

void

allhrefenqueue(string html, string url, spiderqueue que) }}

}/*** 這個函式決定了,通過url獲取網頁的方式,對於需要執行js**的網頁而言,過載這個函式是必須得,比如這裡就是基於htmlunit過載了spider的這個函式

* @param

url 即將抓取的url

* @param

charset 所用的字元編碼

* @return

返回抓取到的資料

* @throws

ioexception

*/@override

synchronized

protected string togethtmlpage(string url, string charset) throws

ioexception

/*** 注意這裡必須呼叫父類的close()方法,來釋放一些資源

*/@override

protected

void

close()

}

3.2 主程式呼叫步驟

public

class

main

@override

public

string getbasesite()

@override

public

string getcharset()

@override

public

boolean

filterurl(string url)

};//step3:採用正規表示式進行資料建模

//<_>這是一對表示這個乙個正規表示式的標籤

//index 屬性 就是該正規表示式需要提取的組

stringbuilder sb=new

stringbuilder();

regexmodel model=new

regexmodel(sb.tostring());

model.getoptions().setabsojs(

true);//

表示將所有js路徑轉化為絕對路徑

model.getoptions().setabsoimage(true);//

表示將所有image路徑轉化為絕對路徑

model.getoptions().setabsocss(true);//

表示將所有css路徑轉化為絕對路徑

alifundtion.setmodel(model);}}

3.3 看一下結果:

**名稱:南方**(qdii-fof)

****:(501018)

**淨值:1.1502  +1.42%  

-1.57%

**名稱:廣發道瓊斯美國石油開發與生產指數(qdii-lof)a

****:(162719)

**淨值:1.1371 +1.65% +0.04%

**名稱:銀華心誠靈活配置混合

****:(005543)

**淨值:0.9507 +1.79% +1.79%

python 網路爬蟲概念與HTTP s 協議

1.通用爬蟲 通用爬蟲是搜尋引擎 baidu google yahoo等 抓取系統 的重要組成部分。2.聚焦爬蟲 聚焦爬蟲是根據指定的需求抓取網路上指定的資料。例如 獲取豆瓣上電影的名稱和影評,而不是獲取整張頁面中所有的資料值。a 門戶 主動向搜尋引擎公司提供其 的url b 搜尋引擎公司與dns服...

TCP協議 HTTPS協議的理解

tcp tcp是一種可靠的傳輸協議,為什麼說它可靠呢,因為它有 三次握手 為什麼握三次手就可靠了,握兩次或者一次會怎樣?hi,我可以跟你拉小手手嗎?ok啊,那你現在方便跟我牽嗎?伸出手 好的,我已經抓住你的手了 https是加了安全驗證的http協議。可以這麼說,當你跟某個遠端的小夥伴通過網路傳輸資...

Http協議和Https協議的區別

http協議我們就不多說了。這篇主要就是簡單的提提 協議。https 協議是基於 協議開發的。它是乙個安全的通訊通道。用於客戶端和伺服器端進行資訊的交換。它主要使用了安全套接字層 ssl 來來進行資訊的交換的。簡單的說它就是 協議的安全版本。http和 的區別 1 https協議是需要向 ca申請證...