摘要:系列教程互聯(lián)網(wǎng)金融爬蟲怎么寫第一課網(wǎng)貸爬蟲入門上一節(jié)課我們一起通過一個網(wǎng)貸爬蟲,深入了解了一下以及其在最終實際使用中的寫法??梢院敛豢鋸埖恼f,對于寫簡單爬蟲來說,最最重要的,就是使用好,以及這一課要講的正則表達式。
系列教程:
互聯(lián)網(wǎng)金融爬蟲怎么寫-第一課 p2p網(wǎng)貸爬蟲(XPath入門)?
上一節(jié)課我們一起通過一個p2p網(wǎng)貸爬蟲,深入了解了一下XPath以及其在最終實際使用中的寫法??梢院敛豢鋸埖恼f,對于寫簡單爬蟲來說,最最重要的,就是使用好XPath,以及這一課要講的正則表達式。
正則表達式,又稱正規(guī)表示法、常規(guī)表示法(英語:Regular?? Expression,在代碼中常簡寫為regex、regexp或RE)
正則表達式幾乎出現(xiàn)在每一個編程語言中,有著極其廣泛的應用,比如做網(wǎng)頁的時候,判斷用戶輸入的是否是郵箱這樣的正則。正則表達式本身寫法基本在各個語言中都是一致的,不過調(diào)用方法可能略有不同,在我們教的爬蟲中,正則表達式主要應用在界定列表url和內(nèi)容url的格式上,就是什么url是列表url,什么url是內(nèi)容url,什么url直接丟棄掉。這樣做主要是為了提高整個爬蟲的爬取效率,防止爬蟲在無關(guān)的url花費太長的時間,當然如果希望全網(wǎng)爬的話,也可以不做設定。
對于手里有點閑錢的人來說,可能最常見的投資品就是股票了,雖然中國股票市場那叫一個變幻詭譎,妖獸頻出。但依舊相對其他流通性差,投資門檻高的投資產(chǎn)品來說,有著國家信用背書的股市依然是不二的投資選擇。股票的數(shù)據(jù)很多地方都有,我們今天就通過雪球的行情中心,爬一下當天各個上市公司的股票價格吧。
打開雪球行情中心:
哇,突然覺得這是我們教程最高大上的一次。首先,這個頁面就可以作為一個不錯的入口Url,因為有著挺多的連接,不過從效率來講,雖然爬蟲本身可以幫我們?nèi)プ龊芏嗍虑椋亲詈眠€是直接找到列表url會更快一些。我們繼續(xù)往里找,可以看到這樣一個界面:
https://xueqiu.com/hq#exchange=CN&plate=1_1_0&firstName=1&secondName=1_1&type=sha&page=1
原諒我實在不懂股市,姑且就認為這個就是所有股票價格的列表,磚家勿噴~
好了,我們看下這個下一頁規(guī)律
https://xueqiu.com/hq#exchange=CN&plate=1_1_0&firstName=1&secondName=1_1&type=sha&page=2 https://xueqiu.com/hq#exchange=CN&plate=1_1_0&firstName=1&secondName=1_1&type=sha&page=3
看著這種url的結(jié)構(gòu),發(fā)自內(nèi)心想說:
好了,我們先根據(jù)這個連接來提取一下正則表達式,首先我們選中其中一個url,然后原封不動的寫出來:
https://xueqiu.com/hq#exchange=CN&plate=1_1_0&firstName=1&secondName=1_1&type=sha&page=2
首先我們需要先把正則里面需要轉(zhuǎn)義的字符進行轉(zhuǎn)移,由于正則表達式中.代表任意字符,?代表指定字符出現(xiàn)0次或者1次,因此如果我們想匹配這兩個字符本身的時候一定要記得將他們轉(zhuǎn)義,當然正則中還有很多其他字符需要轉(zhuǎn)移,不過這兩個字符是url中最常見的,也是大家最容易弄錯的地方。
經(jīng)過轉(zhuǎn)義之后的字符串是這樣的:
https://xueqiu.com/hq#exchange=CN&plate=1_1_0&firstName=1&secondName=1_1&type=sha&page=2
https://xueqiu.com/hq#exchange=CN&plate=1_1_0&firstName=1&secondName=1_1&type=sha&page=d+
最后,一個經(jīng)驗性的東西值得注意,一般來說https的網(wǎng)站都會支持http,甚至有的連接會寫成http,因此這里為了程序的健壯性,最好將這段正則修改一下兼容http的格式,修改的方式是我們允許s存在或者不存在,正則中提供了三個字符表示字符出現(xiàn)數(shù)量的區(qū)間,分別是?表示0或1次,+表示1或多次,*表示0或多次。這里很明顯的,我們應該使用?:
https?://xueqiu.com/hq#exchange=CN&plate=1_1_0&firstName=1&secondName=1_1&type=sha&page=d+
注意這個問號是正則自己的問號,并不需要轉(zhuǎn)義。
這樣我們就把列表頁的url的正則表達式寫出來了。
同樣的方法,我們寫出內(nèi)容頁的正則表達式:
https?://xueqiu.com/S/SHd{6}
這里的{6}表示有6位,當位數(shù)確定或者范圍確定時,可以使用花括號的形式來表示。再次申明,由于本身股票知識匱乏,暫且認為所有代碼都是6位的。
寫到這里感覺已經(jīng)離大功告成不遠了,然而,當我們測試就可以發(fā)現(xiàn),所有頁面的url實際上都是由js生成的,通過ajax請求來的。前功盡棄啊,不過還好咱們還學到了東西。不要灰心,黎明就在最黑暗的時間之后。我們下一課就給大家講一講碰到這些個ajax請求該怎么辦。
對爬蟲感興趣的童鞋可以加qq群討論:566855261。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/80043.html
摘要:系列教程互聯(lián)網(wǎng)金融爬蟲怎么寫第一課網(wǎng)貸爬蟲入門上一節(jié)課我們一起通過一個網(wǎng)貸爬蟲,深入了解了一下以及其在最終實際使用中的寫法。可以毫不夸張的說,對于寫簡單爬蟲來說,最最重要的,就是使用好,以及這一課要講的正則表達式。 系列教程: 互聯(lián)網(wǎng)金融爬蟲怎么寫-第一課 p2p網(wǎng)貸爬蟲(XPath入門)? 上一節(jié)課我們一起通過一個p2p網(wǎng)貸爬蟲,深入了解了一下XPath以及其在最終實際使用中的寫法。...
摘要:之前寫了一個電商爬蟲系列的文章,簡單的給大家展示了一下爬蟲從入門到進階的路徑,但是作為一個永遠走在時代前沿的科技工作者,我們從來都不能停止。金融數(shù)據(jù)實在是價值大,維度多,來源廣。由于也是一種,因此通常來說,在中抽取某個元素是通過來做的。 相關(guān)教程: 手把手教你寫電商爬蟲-第一課 找個軟柿子捏捏 手把手教你寫電商爬蟲-第二課 實戰(zhàn)尚妝網(wǎng)分頁商品采集爬蟲 手把手教你寫電商爬蟲-第三課 實戰(zhàn)...
摘要:之前寫了一個電商爬蟲系列的文章,簡單的給大家展示了一下爬蟲從入門到進階的路徑,但是作為一個永遠走在時代前沿的科技工作者,我們從來都不能停止。金融數(shù)據(jù)實在是價值大,維度多,來源廣。由于也是一種,因此通常來說,在中抽取某個元素是通過來做的。 相關(guān)教程: 手把手教你寫電商爬蟲-第一課 找個軟柿子捏捏 手把手教你寫電商爬蟲-第二課 實戰(zhàn)尚妝網(wǎng)分頁商品采集爬蟲 手把手教你寫電商爬蟲-第三課 實戰(zhàn)...
摘要:剩下的同學,我們繼續(xù)了可以看出,作為一個完善的電商網(wǎng)站,尚妝網(wǎng)有著普通電商網(wǎng)站所擁有的主要的元素,包括分類,分頁,主題等等。 系列教程 手把手教你寫電商爬蟲-第一課 找個軟柿子捏捏 如果沒有看過第一課的朋友,請先移步第一課,第一課講了一些基礎(chǔ)性的東西,通過軟柿子切糕王子這個電商網(wǎng)站好好的練了一次手,相信大家都應該對寫爬蟲的流程有了一個大概的了解,那么這課咱們就話不多說,正式上戰(zhàn)場,對壘...
摘要:剩下的同學,我們繼續(xù)了可以看出,作為一個完善的電商網(wǎng)站,尚妝網(wǎng)有著普通電商網(wǎng)站所擁有的主要的元素,包括分類,分頁,主題等等。 系列教程 手把手教你寫電商爬蟲-第一課 找個軟柿子捏捏 如果沒有看過第一課的朋友,請先移步第一課,第一課講了一些基礎(chǔ)性的東西,通過軟柿子切糕王子這個電商網(wǎng)站好好的練了一次手,相信大家都應該對寫爬蟲的流程有了一個大概的了解,那么這課咱們就話不多說,正式上戰(zhàn)場,對壘...
閱讀 1053·2021-11-15 18:11
閱讀 3174·2021-09-22 15:33
閱讀 3469·2021-09-01 11:42
閱讀 2663·2021-08-24 10:03
閱讀 3630·2021-07-29 13:50
閱讀 2932·2019-08-30 14:08
閱讀 1282·2019-08-28 17:56
閱讀 2266·2019-08-26 13:57