摘要:之前寫了一個(gè)電商爬蟲系列的文章,簡單的給大家展示了一下爬蟲從入門到進(jìn)階的路徑,但是作為一個(gè)永遠(yuǎn)走在時(shí)代前沿的科技工作者,我們從來都不能停止。金融數(shù)據(jù)實(shí)在是價(jià)值大,維度多,來源廣。由于也是一種,因此通常來說,在中抽取某個(gè)元素是通過來做的。
相關(guān)教程:
手把手教你寫電商爬蟲-第一課 找個(gè)軟柿子捏捏
手把手教你寫電商爬蟲-第二課 實(shí)戰(zhàn)尚妝網(wǎng)分頁商品采集爬蟲
手把手教你寫電商爬蟲-第三課 實(shí)戰(zhàn)尚妝網(wǎng)AJAX請(qǐng)求處理和內(nèi)容提取
手把手教你寫電商爬蟲-第四課 淘寶網(wǎng)商品爬蟲自動(dòng)JS渲染
手把手教你寫電商爬蟲-第五課 京東商品評(píng)論爬蟲 一起來對(duì)付反爬蟲
工具要求:教程中主要使用到了 1、神箭手云爬蟲 框架 這個(gè)是爬蟲的基礎(chǔ),2、Chrome瀏覽器和Chrome的插件XpathHelper 這個(gè)用來測試Xpath寫的是否正確
基礎(chǔ)知識(shí): 本教程中主要用到了一些基礎(chǔ)的js和xpath語法,如果對(duì)這兩種語言不熟悉,可以提前先學(xué)習(xí)下,都很簡單。
之前寫了一個(gè)電商爬蟲系列的文章,簡單的給大家展示了一下爬蟲從入門到進(jìn)階的路徑,但是作為一個(gè)永遠(yuǎn)走在時(shí)代前沿的科技工作者,我們從來都不能停止。
在已有的成果上,所以帶上你的chrome,拿起你的xpathhelper,打開你的神箭手,讓我們?cè)俅翁ど险鲬?zhàn)金融數(shù)據(jù)之旅吧。(上個(gè)系列相對(duì)難一些,建議如果是初學(xué)者,先看這個(gè)系列的教程)。
金融數(shù)據(jù)實(shí)在是價(jià)值大,維度多,來源廣。我們到底從哪里入手呢?想來想去,就從前一段時(shí)間風(fēng)云變幻的p2p網(wǎng)貸開始吧。
同樣,我們教程的一致風(fēng)格就是先找個(gè)軟柿子,上來不能用力過猛,逐漸培養(yǎng)自己的信心,等真正敵人來的時(shí)候,才不至于怯場害怕。
我們先去搜索一下p2p網(wǎng)站,隨便找?guī)讉€(gè)對(duì)比一下,選中了這個(gè)滬商財(cái)富。
看著這樣的收益率,心動(dòng)了有木有,錢包坐不住了有木有,對(duì)余額寶投出鄙夷的目光了有木有。
好了,閑話不說,這個(gè)系列課程吸取上個(gè)系列課程里進(jìn)度太快的教訓(xùn),給大家多講一些基礎(chǔ)的知識(shí),這一課就結(jié)合這個(gè)實(shí)例,重點(diǎn)講講xpath的編寫和用法。
首先,大體來講,XPath是一個(gè)相對(duì)簡單的語言,甚至都不一定能稱得上是一個(gè)語言,主要用處是用來標(biāo)記XML的元素路徑。由于html也是一種xml,因此通常來說,在html中抽取某個(gè)元素是通過XPath來做的。XPath本身和Css有著很大的相似性,一般來說如果之前對(duì)Css有一定的了解的話,XPath上手還是很簡單的。具體的情況我在下面的課程中一邊寫,一邊解釋。
首先先確定列表頁:
http://www.hushangcaifu.com/invest/main.html http://www.hushangcaifu.com/invest/index2.html http://www.hushangcaifu.com/invest/index3.html
基本上可以看到列表頁除了第一頁以外都有規(guī)律可尋,不過看到這個(gè)效果,通常我們最好精益求精一下,看下第一頁是否也可以符合規(guī)律呢?
打開 http://www.hushangcaifu.com/invest/index1.html 果然也是第一頁,好了,很完美,總結(jié)成正則表達(dá)式:
http://www.hushangcaifu.com/invest/indexd+.html
再看下詳情頁:
http://www.hushangcaifu.com/invest/a3939.html http://www.hushangcaifu.com/invest/a3936.html
哈哈,小菜一碟,直接化解成正則:
http://www.hushangcaifu.com/invest/ad{4}.html
好了,最后最重要的就是提取頁面元素了。我們打開詳情頁:
http://www.hushangcaifu.com/invest/a3870.html
一般來說,我們?cè)谖覀兿胍崛〉脑厣嫌覔?,點(diǎn)擊審查元素,得到如下結(jié)果:
首先看到y(tǒng)anh1147這個(gè)元素有沒有整個(gè)網(wǎng)頁唯一的class,id或者其他屬性,可以看到,在這個(gè)頁面中沒有,那么我們就往上找,上一級(jí)的p標(biāo)簽也沒有,咱們?cè)偻险遥谏弦患?jí)是一個(gè),終于有class了,讓我們祈禱這個(gè)class是唯一的吧,ctrl+f打開搜索框,輸入product-content-top-left-top,可以看到,找到了1 of 1,這個(gè)代表一共一個(gè),這個(gè)是第一個(gè),這就是我們希望的結(jié)果,好了,只用找到這一級(jí)既可,我們來構(gòu)造整個(gè)的xpath,一般來說xpath我們并不會(huì)從最頂層的html開始寫,因?yàn)闆]有必要,因此我們要使用//,這個(gè)表示不知中間有多少的層級(jí)。接著我們直接把剛剛找到的這個(gè)div寫上去,得到這個(gè)表達(dá)式:
//div[contains(@class,"product-content-top-left-top")]
對(duì)于class屬性,我們通常會(huì)使用contains這樣一個(gè)函數(shù),防止一個(gè)元素有多個(gè)class的情況,另外因?yàn)閏lass是一個(gè)屬性,因此class前面需要加上@代表選擇到該元素的一個(gè)屬性。
現(xiàn)在我們已經(jīng)選擇到了我們要選擇的元素的父元素的父元素,只要我們繼續(xù)往下走兩層既可。
//div[contains(@class,"product-content-top-left-top")]/p/span
由于我們要選擇元素里的文字信息,而不是整個(gè)元素,我們需要指定是這個(gè)元素的文字:
//div[contains(@class,"product-content-top-left-top")]/p/span/text()
好了,這樣我們就確定了我們爬取的借款用戶的名稱,我們打開xpathhelper驗(yàn)證一下有沒有寫錯(cuò):
完美的結(jié)果。不過大家有的時(shí)候也需要注意,因?yàn)橛械木W(wǎng)頁不代表你在一個(gè)內(nèi)容頁測試成功,在其他內(nèi)容頁也能成功,最好多測幾個(gè)頁面才是保險(xiǎn)的。好了,其他的抽取項(xiàng)就不一一演示了,直接上最后的代碼。
var configs = { domains: ["www.hushangcaifu.com"], scanUrls: ["http://www.hushangcaifu.com/invest/index1.html"], contentUrlRegexes: ["http://www.hushangcaifu.com/invest/ad{4}.html"], helperUrlRegexes: ["http://www.hushangcaifu.com/invest/indexd+.html"], fields: [ { name: "title", selector: "http://div[contains(@class,"product-content-top-left-top")]/h3/text()", required: true }, { name: "user_name", selector: "http://div[contains(@class,"product-content-top-left-top")]/p/span/text()" }, { name: "total_money", selector: "http://div[contains(@class,"product-content-top-left-middle")]/div[1]/h4/text()" }, { name: "project_time", selector: "http://div[contains(@class,"product-content-top-left-middle")]/div[2]/h4/text()" }, { name: "annual_return", selector: "http://div[contains(@class,"product-content-top-left-middle")]/div[3]/h4/text()" }, { name: "return_method", selector: "http://div[contains(@class,"product-content-top-left-middle")]/div[4]/h4/text()" } ] }; var crawler = new Crawler(configs); crawler.start();
將代碼粘貼到神箭手平臺(tái)上既可運(yùn)行。好了,看下運(yùn)行結(jié)果:
對(duì)爬蟲感興趣的童鞋可以加qq群討論: 566855261。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/38065.html
摘要:之前寫了一個(gè)電商爬蟲系列的文章,簡單的給大家展示了一下爬蟲從入門到進(jìn)階的路徑,但是作為一個(gè)永遠(yuǎn)走在時(shí)代前沿的科技工作者,我們從來都不能停止。金融數(shù)據(jù)實(shí)在是價(jià)值大,維度多,來源廣。由于也是一種,因此通常來說,在中抽取某個(gè)元素是通過來做的。 相關(guān)教程: 手把手教你寫電商爬蟲-第一課 找個(gè)軟柿子捏捏 手把手教你寫電商爬蟲-第二課 實(shí)戰(zhàn)尚妝網(wǎng)分頁商品采集爬蟲 手把手教你寫電商爬蟲-第三課 實(shí)戰(zhàn)...
摘要:系列教程互聯(lián)網(wǎng)金融爬蟲怎么寫第一課網(wǎng)貸爬蟲入門上一節(jié)課我們一起通過一個(gè)網(wǎng)貸爬蟲,深入了解了一下以及其在最終實(shí)際使用中的寫法??梢院敛豢鋸埖恼f,對(duì)于寫簡單爬蟲來說,最最重要的,就是使用好,以及這一課要講的正則表達(dá)式。 系列教程: 互聯(lián)網(wǎng)金融爬蟲怎么寫-第一課 p2p網(wǎng)貸爬蟲(XPath入門)? 上一節(jié)課我們一起通過一個(gè)p2p網(wǎng)貸爬蟲,深入了解了一下XPath以及其在最終實(shí)際使用中的寫法。...
摘要:系列教程互聯(lián)網(wǎng)金融爬蟲怎么寫第一課網(wǎng)貸爬蟲入門上一節(jié)課我們一起通過一個(gè)網(wǎng)貸爬蟲,深入了解了一下以及其在最終實(shí)際使用中的寫法。可以毫不夸張的說,對(duì)于寫簡單爬蟲來說,最最重要的,就是使用好,以及這一課要講的正則表達(dá)式。 系列教程: 互聯(lián)網(wǎng)金融爬蟲怎么寫-第一課 p2p網(wǎng)貸爬蟲(XPath入門)? 上一節(jié)課我們一起通過一個(gè)p2p網(wǎng)貸爬蟲,深入了解了一下XPath以及其在最終實(shí)際使用中的寫法。...
摘要:剩下的同學(xué),我們繼續(xù)了可以看出,作為一個(gè)完善的電商網(wǎng)站,尚妝網(wǎng)有著普通電商網(wǎng)站所擁有的主要的元素,包括分類,分頁,主題等等。 系列教程 手把手教你寫電商爬蟲-第一課 找個(gè)軟柿子捏捏 如果沒有看過第一課的朋友,請(qǐng)先移步第一課,第一課講了一些基礎(chǔ)性的東西,通過軟柿子切糕王子這個(gè)電商網(wǎng)站好好的練了一次手,相信大家都應(yīng)該對(duì)寫爬蟲的流程有了一個(gè)大概的了解,那么這課咱們就話不多說,正式上戰(zhàn)場,對(duì)壘...
摘要:剩下的同學(xué),我們繼續(xù)了可以看出,作為一個(gè)完善的電商網(wǎng)站,尚妝網(wǎng)有著普通電商網(wǎng)站所擁有的主要的元素,包括分類,分頁,主題等等。 系列教程 手把手教你寫電商爬蟲-第一課 找個(gè)軟柿子捏捏 如果沒有看過第一課的朋友,請(qǐng)先移步第一課,第一課講了一些基礎(chǔ)性的東西,通過軟柿子切糕王子這個(gè)電商網(wǎng)站好好的練了一次手,相信大家都應(yīng)該對(duì)寫爬蟲的流程有了一個(gè)大概的了解,那么這課咱們就話不多說,正式上戰(zhàn)場,對(duì)壘...
閱讀 646·2021-09-22 10:02
閱讀 6410·2021-09-03 10:49
閱讀 571·2021-09-02 09:47
閱讀 2157·2019-08-30 15:53
閱讀 2936·2019-08-30 15:44
閱讀 908·2019-08-30 13:20
閱讀 1822·2019-08-29 16:32
閱讀 895·2019-08-29 12:46