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