本文總共三章,前面兩章廢話吐槽比較多,想看結果的話,直接看第三章(後續會更新,最近忙著畢設呢,畢設也是我自己做的,關於射頻卡的,有時間我也放上來,哈哈)。
首先吐槽一下,標題取得好水,原諒我是一枚耿直的工科男。系統框圖如下所示,簡單看一下,對整體有個把握,總體由4個部分組成
說點題外話,關於爬蟲的的實現,網上很多,但是只要你不是我這樣的大老粗,你仔細看就會發現,所有的實現基本都是機械抓取url,最為致命的是抓取的url還有可能是相對url。那什麼獲取個性化資料就有點大海撈針的感覺了。哈哈,自戀一下,本爬蟲就可以大海撈針(你也可以當笑話看,否則這玩意太枯燥了)。其實我感覺的話,爬蟲的核心無非就兩個:一是要能很好的處理url,二是方便獲取想要的資料。至於什麼效率,鄙人認為,在這個計算機處理能力飛速提示的年代,不是那麼重要。
下面是整個引擎執行流程圖:
正所謂實踐是檢驗真理的唯一標準,這裡以抓取阿里巴巴旗下螞蟻金服的**資料為例子,進行簡單講解一下。
3.1 定義乙個基於該**的引擎類。此類需要匯入我開發的包,然後繼承自spider。spider有幾個函式是用於子類過載的。主要的也就是下面的三個過載子函式.詳情看注釋
public3.2 主程式呼叫步驟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()
}
public3.3 看一下結果: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);}}
**名稱:南方**(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申請證...