摘要:目標(biāo)很簡單,因?yàn)槲蚁胍酪幌伦C券化率,然后可視化輸出結(jié)果。證券化率的基礎(chǔ)就是上市公司的總市值,對(duì)于證券化率其實(shí)還蠻多說法的,比如雪球的這篇文。我們可以利用這個(gè)回調(diào)函數(shù)來顯示當(dāng)前的下載進(jìn)度。
寫在前面的叨叨
折騰了這么久,我終于在喝完一聽快樂肥宅水后下定決心來學(xué)習(xí)寫爬蟲了。
目標(biāo)很簡單,因?yàn)槲蚁胍酪幌隆白C券化率”,然后可視化輸出結(jié)果。
證券化率的基礎(chǔ)就是上市公司的總市值,對(duì)于證券化率其實(shí)還蠻多說法的,比如雪球的這篇文。
中國的真實(shí)證券化率是多少?
爬蟲對(duì)于證券類的分析來說,其實(shí)已經(jīng)是司空見慣了,但是作為菜鳥小股民,希望自己在寫完這個(gè)爬蟲之后也對(duì)股票有更深的認(rèn)識(shí)吧,然后能賺錢就更好啦~
找了一個(gè)相對(duì)好入門的案例,來作為學(xué)習(xí)的范本。
Python爬蟲抓取東方財(cái)富網(wǎng)股票數(shù)據(jù)并實(shí)現(xiàn)MySQL數(shù)據(jù)庫存儲(chǔ)
主要使用的工具和模塊包括:Anaconda Pandas MySQL
Anaconda是之前就安裝好了的,具體過程可以參考這個(gè)安裝流程。
Anaconda完全入門指南
Pandas是在Anaconda中用命令安裝好的,還得摸索下這個(gè)工具。
pip install pandas
MySQL以前寫PHP的時(shí)候,都習(xí)慣直接用Wamp打包處理了,這會(huì)兒就來摸索下多帶帶安裝,安裝教程參考這個(gè)。
windows下安裝Mysql—圖文詳解
一共是四個(gè)步驟:
用爬蟲將數(shù)據(jù)抓取到本地csv文件中
將csv文件內(nèi)的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫中
MySQL數(shù)據(jù)庫內(nèi)進(jìn)行查詢
我們今天的目標(biāo)是完成第一步----因?yàn)镸ySQL還沒部署完畢...明天繼續(xù)~
#導(dǎo)入需要使用到的模塊 import urllib import re import pandas as pd import pymysql import os #爬蟲抓取網(wǎng)頁函數(shù) def getHtml(url): html = urllib.request.urlopen(url).read() html = html.decode("gbk") return html #抓取網(wǎng)頁股票代碼函數(shù) def getStackCode(html): s = r"
我們看一下源代碼是這樣的,注釋寫的很清楚,我們來拆解一下。
引入模塊,包括pandas和re等
分模塊寫函數(shù)
getHtml()用于抓取網(wǎng)頁,讀取網(wǎng)頁源碼
getStackCode()對(duì)抓取到的源碼讀取,拆解出
結(jié)構(gòu)里面的鏈接,打開Url對(duì)應(yīng)的地址,看到對(duì)應(yīng)的圖形結(jié)構(gòu),紅框就是需要命中的目標(biāo)。根據(jù)代碼,原作者只截取了6開頭的大盤股的list存儲(chǔ)入數(shù)組。 然后用GET方法獲取每個(gè)代碼對(duì)應(yīng)的股票的數(shù)據(jù),對(duì)每組數(shù)據(jù)進(jìn)行存儲(chǔ)。
將代碼放到本地跑一下,看下結(jié)果。
正常應(yīng)該是會(huì)下載數(shù)據(jù)到文件夾下,但是報(bào)錯(cuò)了。
應(yīng)該是request模塊下的urlretrieve函數(shù)報(bào)錯(cuò)。
關(guān)聯(lián)語句是
urllib.request.urlretrieve(url, filepath+code+".csv")
關(guān)于urlretrieve()這個(gè)方法,因?yàn)闆]有使用過,所以來看下詳解。
Python urllib模塊urlopen()與urlretrieve()詳解
urlretrieve()用于直接將遠(yuǎn)程數(shù)據(jù)下載到本地。
urllib.urlretrieve(url[, filename[, reporthook[, data]]])
參數(shù)說明:
url:外部或者本地url
filename:指定了保存到本地的路徑(如果未指定該參數(shù),urllib會(huì)生成一個(gè)臨時(shí)文件來保存數(shù)據(jù));
reporthook:是一個(gè)回調(diào)函數(shù),當(dāng)連接上服務(wù)器、以及相應(yīng)的數(shù)據(jù)塊傳輸完畢的時(shí)候會(huì)觸發(fā)該回調(diào)。我們可以利用這個(gè)回調(diào)函數(shù)來顯示當(dāng)前的下載進(jìn)度。
data:指post到服務(wù)器的數(shù)據(jù)。該方法返回一個(gè)包含兩個(gè)元素的元組(filename, headers),filename表示保存到本地的路徑,header表示服務(wù)器的響應(yīng)頭。
會(huì)過來看我們的函數(shù)語句↓
urllib.request.urlretrieve(url, filepath+code+".csv")
指定了地址和文件名(保存到本地的路徑),所以我試試在本地新建一個(gè)600000.csv來測試下結(jié)果。
然后發(fā)現(xiàn)并沒有結(jié)果。
然后發(fā)現(xiàn)自己干了很蠢的事情.....
emmm....其實(shí)是我的路徑寫錯(cuò)了,然后實(shí)驗(yàn)結(jié)果是這樣的~
現(xiàn)在就坐等爬完啦~然后安裝MySQL,然后導(dǎo)入數(shù)據(jù)庫。
明天來嘗試下自己復(fù)寫一下這個(gè)爬蟲~
主要涉及的內(nèi)容是網(wǎng)頁結(jié)果和模塊方法的使用。
包括了:
request.urlopen()
re.compile()
request.urlretriev()
要好好學(xué)習(xí)~
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/43280.html
摘要:爬爬們,如果你已經(jīng)開始部署項(xiàng)目了,那么你肯定也已經(jīng)寫好了完整的爬蟲項(xiàng)目,恭喜你,你很優(yōu)秀今天忙了小半天的服務(wù)器部署,跟大家分享一些心得首先我們要有一臺(tái)服務(wù)器,不好意思,這是廢話,略過。。。。。 爬爬們,如果你已經(jīng)開始部署項(xiàng)目了,那么你肯定也已經(jīng)寫好了完整的爬蟲項(xiàng)目,恭喜你,你很優(yōu)秀!**今天忙了小半天的服務(wù)器部署,跟大家分享一些心得~ 首先我們要有一臺(tái)服務(wù)器,不好意思,這是廢話,略過...
摘要:但發(fā)現(xiàn)導(dǎo)出來的沒有高亮語法沒有語法高亮咋看啊,所以到這里我就放棄了,將就用一下博客園生成的吧爬蟲學(xué)習(xí)上面提供的接口是一個(gè)生成一個(gè)文件,我是不可能一個(gè)一個(gè)將鏈接和標(biāo)題放上去生成的因?yàn)椴┛蛨@上發(fā)的也將近篇了。 前言 只有光頭才能變強(qiáng) 之前有讀者問過我:3y你的博客有沒有電子版的呀?我想要份電子版的。我說:沒有啊,我沒有弄過電子版的,我這邊有個(gè)文章導(dǎo)航頁面,你可以去文章導(dǎo)航去找來看呀..然后...
摘要:今天就先給大家講大數(shù)據(jù)分析工程師。所以你要和我說你在外面培訓(xùn)了個(gè)月的大數(shù)據(jù)分析后,就想做了,那請(qǐng)你再考慮考慮。而他們鼓吹的大數(shù)據(jù)分析師,其實(shí)就是。 showImg(https://segmentfault.com/img/remote/1460000018722710?w=1000&h=750); Overview: 序 基本概念 DS的職能要求 DE的職能要求 總結(jié) 一、序 今天...
摘要:我是由貝爾實(shí)驗(yàn)室的在年年間發(fā)明創(chuàng)造的,瞧,就他你們眼中的語言之父。與此同時(shí),由于庫函數(shù)的缺失,導(dǎo)致新手在開發(fā)任何一塊小程序的時(shí)候都必須得親力親為。對(duì)了,我爸是微軟,由和派生出來的面向?qū)ο蟮木幊陶Z言。對(duì),我曾是世界上最好的編程語言。 ...
閱讀 3511·2021-11-23 10:13
閱讀 879·2021-09-22 16:01
閱讀 921·2021-09-09 09:33
閱讀 649·2021-08-05 09:58
閱讀 1734·2019-08-30 11:14
閱讀 1980·2019-08-30 11:02
閱讀 3282·2019-08-29 16:28
閱讀 1498·2019-08-29 16:09