SlideShare a Scribd company logo
1 of 64
Download to read offline
Python金融爬蟲原理班
David Chiu
2017/04/16
關於我
 大數軟體有限公司創辦人
 前趨勢科技工程師
 ywchiu.com
 大數學堂
http://www.largitdata.com/
 粉絲頁
https://www.facebook.com/largitdata
 R for Data Science Cookbook
https://www.packtpub.com/big-data-and-
business-intelligence/r-data-science-cookbook
 Machine Learning With R Cookbook
https://www.packtpub.com/big-data-and-
business-intelligence/machine-learning-r-
cookbook
2
Machine Learning With R Cookbook
(机器学习与R语言实战) & R for Data Science Cookbook
Author: David (YU-WEI CHIU) Chiu
3
 所有課程補充資料、投影片皆位於
https://github.com/ywchiu/pyfinance
課程資料
4
網路爬蟲
5
 在做任何分析之前,必定
要蒐集足夠的數據做分析
,才能擬定高勝率策略
 除了購買數據外,任何人
都可以透過撰寫ETL
(Extract, Transformation,
Loading)程序自動化蒐集
資訊
透過分析數據擬定策略才能找到聖杯
6
將非結構化數據轉變為結構化數據
透由簡單的SQL語句
從結構化資料中
達到簡單的分析目的
7
請求 Request
回應 Response
網頁網頁連結器
Web Connector
資料剖析
Data Parser
資料中心
Data Center
爬蟲是怎麼運作的
8
使用Anaconda 開發
9
安裝Anaconda
10
https://www.continuum.io/downloads
選擇Python 3.6版
使用 Jupyter (Ipython Notebook)
11
點選Jupyter Notebook
或在Anaconda Prompt 下打入
jupyter notebook
 在命令列下打:
jupyter notebook
自動開啟瀏覽器後便可瀏覽 (預設為localhost:8888)
 可匯出.ipynb, .py 各種不同格式檔案
 瀏覽快捷鍵 Help -> Keyboard Shortcuts
啟用 Jupyter (jupyter Notebook)
12
常用熱鍵
Shift + Enter
執行該Cell 後新增Cell
Python v.s. Java
/* example 1 */
public static void main(String[]
args){
for(int i=0; i< 10; i++)
System.out.print(i);
}
 執行速度較Python 為快
 使用{}分隔區塊
 需要宣告變數型態
 可以透過Compiler 檢查錯誤
 使用/**/做註解
'''example1'''
for i in range(1,11):
print(i)
 開發速度較快
 使用indent 替代 {}
 不須宣告變數型態
 只能在runtime 檢查錯誤
 以#與’’或”” 做註解
Java Python
13
撰寫第一隻爬蟲
14
 於網頁上點選右鍵 -> 檢查
使用開發人員工具
15
點選檢查
或使用ctrl + shift +i
觀察HTTP 請求與返回內容
16
1. 點選Network
2. 點選Doc
3. 點選連結
GET
內容寫在上頭
http://www.twse.com.tw/ch/trading/fund/T86/T86.php
什麼是GET?
17
 Requests
改善Urllib2 的缺點,讓使用者以最簡單的方式獲取網
路資源
使用REST 操作,可以調用GET,POST, PUT, DELETE
Python 抓取網頁的主流套件
18
使用GET 抓取頁面資訊
import requests
res = requests.get('http://www.twse.com.tw/ch/trading/fund/T86/T86.php')
res.text
19
import requests
help(requests)
dir(requests)
help(requests.get)
? requests.get
使用Help 與 dir 查詢套件與函式
使用help 查詢文件
使用dir 表列可用屬性
與方法
不確定該方法的功能
使用help 或 ?
20
抓取三大法人買賣超日報
21
http://www.twse.com.tw/ch/trading/fund/T86/T86.php
 填入資訊後按查詢
找尋抓取三大法人買賣超日報資訊
22
1. 點選Network
2. 點選DOC
3. 點選連結
什麼是POST?
23
POST
內容寫在信紙,包在信封內
http://www.twse.com.tw/ch/tradi
ng/fund/T86/T86.php
download:
qdate: 106/04/12
select2: ALL
sorting: by_issue
import requests
payload = {
'qdate':'106/04/12',
'select2':'ALL',
'sorting':'by_issue'
}
res = requests.post('http://www.twse.com.tw/ch/trading/fund/T86/T86.php',
data=payload)
使用POST 取得三大法人買賣超日報資訊
24
GET V.S. POST
GET
內容寫在上頭
POST
內容寫在信紙,包在信封內
25
資料剖析
26
DOM Tree
27
<html>
<body>
<h1 id="title">Hello World</h1>
<a href="#" class="link">This is link1</a>
<a href="# link2" class="link">This is link2</a>
</body>
</html>
html
h1 a a
body
Document Object Model
 可以用來剖析及萃取 HTML的內容
 會自動將讀入的內容轉換成UTF-8編碼
 底層使用lxml及html5lib,可以使用不同的剖析
函式以取得速度與彈性的平衡
BeautifulSoup(html_sample, 'html.parser')
使用BeautifulSoup4
28
可抽換Parser
 將網頁讀進BeautifulSoup 中
from bs4 import BeautifulSoup
html_sample = '''
<html>
<body>
<h1 id="title">Hello World</h1>
<a href="#" class="link">This is link1</a>
<a href="# link2" class="link">This is link2</a>
</body>
</html>'''
soup = BeautifulSoup(html_sample, 'html.parser')
print(soup.text)
BeautifulSoup 範例
29
 使用Select 找出(第一個)含有a tag 的元素
soup = BeautifulSoup(html_sample, 'html.parser')
alink = soup.select('a')
print(alink)
找出所有含a tag 的HTML 元素
30
Select 的結果會存放在list 中
 使用Select 找出所有id為title的元素
alink = soup.select('#title')
print(alink)
取得含有特定ID的元素
31
ID 前面必須加上 #
 使用Select 找出所有class為link的元素
soup = BeautifulSoup(html_sample, 'html.parser')
for link in soup.select('.link'):
print(link)
取得含有特定class的元素
32
Class 前面必須加上 .
使用select找出所有a tag 的href 連結
alinks = soup.select('a')
for link in alinks:
print(link['href'])
取得所有a tag 內的連結
33
試著抓取表格資料
34
1. 點選觀察元素
2. 點選要抓取的區塊
3. 檢視css path
import requests
from bs4 import BeautifulSoup
res = requests.get('http://www.twse.com.tw/ch/trading/fund/T86/T86.php')
soup = BeautifulSoup(res.text, 'html.parser')
soup.select('#tbl-sortable')
抓取交易表格
35
 Chrome 開發人員工具
 Firefox 開發人員工具
 InfoLite
https://chrome.google.com/webstore/detail/infolite/ipjb
adabbpedegielkhgpiekdlmfpgal
尋找CSS 的定位
36
使用InfoLite 點選抓取區域
37
綠色: 目前選取得區塊
黃色: 符合樣式的區塊
紅色: 排除的曲塊
Clear旁邊的數字: 符合區塊的數目
使用Pandas處理表格資料
38
 Python for Data Analysis
源自於R
Table –Like 格式
提供高效能、簡易使用的資料格式(Data Frame)讓使用
者可以快速操作及分析資料
Pandas
39
table = """
<table>
<thead>
<tr>
<th>Month</th>
<th>Savings</th>
</tr>
</thead>
<tbody>
<tr> <td>January</td> <td>$100</td></tr>
<tr> <td>February</td> <td>$80</td></tr>
</tbody>
<tfoot>
<tr> <td>Sum</td> <td>$180</td> </tr>
</tfoot>
</table>
"""
import pandas as pd
dfs = pd.read_html(table)
dfs[0]
使用read_html 讀取表格
40
 在Jupyter Notebook 的 Cell 下打
! pip install html5lib==1.0b3
安裝html5lib
41
整理三大法人買賣超日報資訊
42
整理三大法人買賣超日報資訊
43
import requests
payload = {
'qdate':'106/04/14',
'select2':‘24',
'sorting':'by_issue'
}
res = requests.post('http://www.twse.com.tw/ch/trading/fund/T86/T86.php', data=payload)
抓取三大法人買賣超日報資訊
44
from bs4 import BeautifulSoup
import pandas
soup = BeautifulSoup(res.text, 'lxml')
tbl = soup.select('#tbl-sortable')[0]
dfs = pandas.read_html(tbl.prettify('utf-8'), encoding='utf-8')
stockdf = dfs[0]
使用Pandas 讀取資料
45
stockdf[stockdf['外資 買賣超股數'.decode('utf-
8')]==stockdf['外資 買賣超股數'.decode('utf-
8')].max()]
猜猜哪隻股票外資買賣超最多?
46
stockdf.sort_values( by= '外資 買賣超股數
'.decode('utf-8'), ascending=False).head()
根據買賣超排序
47
由大到小做排序
def getTradingVolume(dt):
payload['qdate'] = getTWDate(dt)
res = requests.post('http://www.twse.com.tw/ch/trading/fund/T86/T86.php', data=payload)
soup = BeautifulSoup(res.text, 'lxml')
tbl = soup.select('#tbl-sortable')[0]
dfs = pd.read_html(tbl.prettify('utf-8'), encoding='utf-8')
stockdf = dfs[0]
stockdf['ymd'] = dt
return stockdf
定義函式
48
增加日期欄位
from datetime import datetime
currenttime = datetime.now()
print currenttime.strftime("%Y-%m-%d")
a = '2017-04-16 14:00'
print datetime.strptime(a, "%Y-%m-%d %H:%M")
時間跟字串轉換
49
from datetime import date,datetime, timedelta
currenttime = datetime.now()
for i in range(1,3):
dt = currenttime - timedelta(days = i)
print(dt)
print(dt.strftime('%Y/%m/%d'))
產生日期
50
但是必須要民國時間
from datetime import date,datetime, timedelta
currenttime = datetime.now()
for i in range(1,3):
dt = currenttime - timedelta(days = i)
year = int(dt.strftime('%Y')) - 1911
monthdate = dt.strftime('%m/%d')
print('{}/{}'.format(year, monthdate))
產生民國日期
51
def getTWDate(dt):
year = int(dt.strftime('%Y')) - 1911
monthdate = dt.strftime('%m/%d')
ymd = '{}/{}'.format(year, monthdate)
return ymd
增加日期轉換函式
52
def getTradingVolume(dt):
payload['qdate'] = getTWDate(dt)
res = requests.post('http://www.twse.com.tw/ch/trading/fund/T86/T86.php',
data=payload)
soup = bs(res.text, 'html5lib')
tbl = soup.select('#tbl-sortable')[0]
dfs = pandas.read_html(tbl.prettify('utf-8'), encoding='utf-8')
stockdf = dfs[0]
stockdf['ymd'] = dt
return stockdf
修改原本函式
53
dfs = []
currenttime = datetime.now()
for i in range(1,30):
dt = currenttime.date() - timedelta(days = i)
dfs.append(getTradingVolume(dt))
批次執行30天的資料
54
stockdf = pandas.concat(dfs, ignore_index=True)
len(stockdf)
合併所有的Data Frame
55
stockdf.to_excel('stock.xlsx')
將資料儲存至Excel
56
資料儲存 (SQLITE)
57
 安裝SQLite
請至官網http://sqlite.org/download.html 下載適合自己
作業系統的版本安裝
 安裝SQLite Manager
打開Firefox 後至下列網址
https://addons.mozilla.org/en-US/firefox/addon/sqlite-
manager/ 下載適合自己作業系統的版本安裝
課前預備
58
課前知識
 特性
self-contained
serverless
zero-configuration
Transactional
 ACID 資料庫
 支援 SQL 92 語法
 開源
59
import sqlite3 as lite
with lite.connect('finance.sqlite') as db:
stockdf.to_sql(name='trading_volume',
index=False, con=db, if_exists='replace')
使用Pandas 將資料塞進資料庫
60
開啟SQLite Manager
開啟SQLite Manager
61
使用SQLite Manager瀏覽資料
檢視所有塞入的資料
62
import sqlite3 as lite
with lite.connect('finance.sqlite') as db:
df = pd.read_sql_query('SELECT count(1)
FROM trading_volume;', db)
df
使用Pandas 下SQL 查詢資料
63
64

More Related Content

What's hot

9 secredteam recon
9 secredteam recon9 secredteam recon
9 secredteam reconrassec-yds
 
近期民間與政府在資料開放協作上的案例
近期民間與政府在資料開放協作上的案例近期民間與政府在資料開放協作上的案例
近期民間與政府在資料開放協作上的案例Audrey Tang
 
The Data Science Program 讓公共服務變聰明的《資料科學計畫》 (蔣居裕)
The Data Science Program 讓公共服務變聰明的《資料科學計畫》 (蔣居裕)The Data Science Program 讓公共服務變聰明的《資料科學計畫》 (蔣居裕)
The Data Science Program 讓公共服務變聰明的《資料科學計畫》 (蔣居裕)codefortomorrow
 
JCConf 2015 TW 高效率資料爬蟲組合包
JCConf 2015 TW 高效率資料爬蟲組合包JCConf 2015 TW 高效率資料爬蟲組合包
JCConf 2015 TW 高效率資料爬蟲組合包書豪 李
 
搜尋引擎
搜尋引擎搜尋引擎
搜尋引擎maolins
 
從網頁存取記錄瞭解使用者行為與網頁區塊貢獻分析-崔殷豪
從網頁存取記錄瞭解使用者行為與網頁區塊貢獻分析-崔殷豪從網頁存取記錄瞭解使用者行為與網頁區塊貢獻分析-崔殷豪
從網頁存取記錄瞭解使用者行為與網頁區塊貢獻分析-崔殷豪台灣資料科學年會
 

What's hot (6)

9 secredteam recon
9 secredteam recon9 secredteam recon
9 secredteam recon
 
近期民間與政府在資料開放協作上的案例
近期民間與政府在資料開放協作上的案例近期民間與政府在資料開放協作上的案例
近期民間與政府在資料開放協作上的案例
 
The Data Science Program 讓公共服務變聰明的《資料科學計畫》 (蔣居裕)
The Data Science Program 讓公共服務變聰明的《資料科學計畫》 (蔣居裕)The Data Science Program 讓公共服務變聰明的《資料科學計畫》 (蔣居裕)
The Data Science Program 讓公共服務變聰明的《資料科學計畫》 (蔣居裕)
 
JCConf 2015 TW 高效率資料爬蟲組合包
JCConf 2015 TW 高效率資料爬蟲組合包JCConf 2015 TW 高效率資料爬蟲組合包
JCConf 2015 TW 高效率資料爬蟲組合包
 
搜尋引擎
搜尋引擎搜尋引擎
搜尋引擎
 
從網頁存取記錄瞭解使用者行為與網頁區塊貢獻分析-崔殷豪
從網頁存取記錄瞭解使用者行為與網頁區塊貢獻分析-崔殷豪從網頁存取記錄瞭解使用者行為與網頁區塊貢獻分析-崔殷豪
從網頁存取記錄瞭解使用者行為與網頁區塊貢獻分析-崔殷豪
 

Similar to 廣宣學堂Python金融爬蟲原理班 20170416

自下而上的数据仓库构建方法
自下而上的数据仓库构建方法自下而上的数据仓库构建方法
自下而上的数据仓库构建方法tongxiaojun
 
柔性数据接口的设计与实现
柔性数据接口的设计与实现柔性数据接口的设计与实现
柔性数据接口的设计与实现Leo Zhou
 
DSP 資料科學計畫簡介
DSP 資料科學計畫簡介DSP 資料科學計畫簡介
DSP 資料科學計畫簡介codefortomorrow
 
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座NTC.im(Notch Training Center)
 
2010,我的技术之选
2010,我的技术之选2010,我的技术之选
2010,我的技术之选勇浩 赖
 
Hadoop与数据分析
Hadoop与数据分析Hadoop与数据分析
Hadoop与数据分析George Ang
 
Python introduction and data visualization publish
Python introduction and data visualization publishPython introduction and data visualization publish
Python introduction and data visualization publishcoolzzzx
 
Office 365 love open source
Office 365 love open source Office 365 love open source
Office 365 love open source Ares Chen
 
1_MySQL_20220307_0328.pptx
1_MySQL_20220307_0328.pptx1_MySQL_20220307_0328.pptx
1_MySQL_20220307_0328.pptxFEG
 
人工智慧的使用體驗 AI時代的UI與創新
人工智慧的使用體驗 AI時代的UI與創新人工智慧的使用體驗 AI時代的UI與創新
人工智慧的使用體驗 AI時代的UI與創新William Shyu
 
無限想像的科技創新未來—大數據專案管理與資料分析實務應用 20170927(龍華科技大學)
無限想像的科技創新未來—大數據專案管理與資料分析實務應用 20170927(龍華科技大學)無限想像的科技創新未來—大數據專案管理與資料分析實務應用 20170927(龍華科技大學)
無限想像的科技創新未來—大數據專案管理與資料分析實務應用 20170927(龍華科技大學)張大明 Ta-Ming Chang
 
构建网络工具箱
构建网络工具箱构建网络工具箱
构建网络工具箱Lv Jian
 
Mahout資料分析基礎入門
Mahout資料分析基礎入門Mahout資料分析基礎入門
Mahout資料分析基礎入門Jhang Raymond
 
Data Analyse Black Horse - ClickHouse
Data Analyse Black Horse - ClickHouseData Analyse Black Horse - ClickHouse
Data Analyse Black Horse - ClickHouseJack Gao
 
Think php官方视频之入门篇【幻灯片】
Think php官方视频之入门篇【幻灯片】Think php官方视频之入门篇【幻灯片】
Think php官方视频之入门篇【幻灯片】luofei614
 
Scaling Offline Database Usage On GCP @ Dcard
Scaling Offline Database Usage On GCP @ DcardScaling Offline Database Usage On GCP @ Dcard
Scaling Offline Database Usage On GCP @ DcardJui An Huang (黃瑞安)
 
Hadoop Big Data 成功案例分享
Hadoop Big Data 成功案例分享Hadoop Big Data 成功案例分享
Hadoop Big Data 成功案例分享Etu Solution
 
How to run an AI Project @pixnet
How to run an AI Project @pixnetHow to run an AI Project @pixnet
How to run an AI Project @pixnet晨揚 施
 

Similar to 廣宣學堂Python金融爬蟲原理班 20170416 (20)

自下而上的数据仓库构建方法
自下而上的数据仓库构建方法自下而上的数据仓库构建方法
自下而上的数据仓库构建方法
 
柔性数据接口的设计与实现
柔性数据接口的设计与实现柔性数据接口的设计与实现
柔性数据接口的设计与实现
 
Data Pipeline Matters
Data Pipeline MattersData Pipeline Matters
Data Pipeline Matters
 
DSP 資料科學計畫簡介
DSP 資料科學計畫簡介DSP 資料科學計畫簡介
DSP 資料科學計畫簡介
 
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座
淺談物聯網巨量資料挑戰 - Jazz 王耀聰 (2016/3/17 於鴻海內湖) 免費講座
 
Hadoop ecosystem
Hadoop ecosystemHadoop ecosystem
Hadoop ecosystem
 
2010,我的技术之选
2010,我的技术之选2010,我的技术之选
2010,我的技术之选
 
Hadoop与数据分析
Hadoop与数据分析Hadoop与数据分析
Hadoop与数据分析
 
Python introduction and data visualization publish
Python introduction and data visualization publishPython introduction and data visualization publish
Python introduction and data visualization publish
 
Office 365 love open source
Office 365 love open source Office 365 love open source
Office 365 love open source
 
1_MySQL_20220307_0328.pptx
1_MySQL_20220307_0328.pptx1_MySQL_20220307_0328.pptx
1_MySQL_20220307_0328.pptx
 
人工智慧的使用體驗 AI時代的UI與創新
人工智慧的使用體驗 AI時代的UI與創新人工智慧的使用體驗 AI時代的UI與創新
人工智慧的使用體驗 AI時代的UI與創新
 
無限想像的科技創新未來—大數據專案管理與資料分析實務應用 20170927(龍華科技大學)
無限想像的科技創新未來—大數據專案管理與資料分析實務應用 20170927(龍華科技大學)無限想像的科技創新未來—大數據專案管理與資料分析實務應用 20170927(龍華科技大學)
無限想像的科技創新未來—大數據專案管理與資料分析實務應用 20170927(龍華科技大學)
 
构建网络工具箱
构建网络工具箱构建网络工具箱
构建网络工具箱
 
Mahout資料分析基礎入門
Mahout資料分析基礎入門Mahout資料分析基礎入門
Mahout資料分析基礎入門
 
Data Analyse Black Horse - ClickHouse
Data Analyse Black Horse - ClickHouseData Analyse Black Horse - ClickHouse
Data Analyse Black Horse - ClickHouse
 
Think php官方视频之入门篇【幻灯片】
Think php官方视频之入门篇【幻灯片】Think php官方视频之入门篇【幻灯片】
Think php官方视频之入门篇【幻灯片】
 
Scaling Offline Database Usage On GCP @ Dcard
Scaling Offline Database Usage On GCP @ DcardScaling Offline Database Usage On GCP @ Dcard
Scaling Offline Database Usage On GCP @ Dcard
 
Hadoop Big Data 成功案例分享
Hadoop Big Data 成功案例分享Hadoop Big Data 成功案例分享
Hadoop Big Data 成功案例分享
 
How to run an AI Project @pixnet
How to run an AI Project @pixnetHow to run an AI Project @pixnet
How to run an AI Project @pixnet
 

More from Paul Chao

AI與大數據數據處理 Spark實戰(20171216)
AI與大數據數據處理 Spark實戰(20171216)AI與大數據數據處理 Spark實戰(20171216)
AI與大數據數據處理 Spark實戰(20171216)Paul Chao
 
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated企業導入微服務實戰 - updated
企業導入微服務實戰 - updatedPaul Chao
 
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated企業導入微服務實戰 - updated
企業導入微服務實戰 - updatedPaul Chao
 
廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰Paul Chao
 
廣宣學堂: 機器視覺初探 10152017
廣宣學堂: 機器視覺初探 10152017廣宣學堂: 機器視覺初探 10152017
廣宣學堂: 機器視覺初探 10152017Paul Chao
 
Python網站框架絕技: Django 完全攻略班
Python網站框架絕技: Django 完全攻略班Python網站框架絕技: Django 完全攻略班
Python網站框架絕技: Django 完全攻略班Paul Chao
 
開放運算&GPU技術研究班
開放運算&GPU技術研究班開放運算&GPU技術研究班
開放運算&GPU技術研究班Paul Chao
 
廣宣學堂: 容器進階實務 - Docker進深研究班
廣宣學堂: 容器進階實務 - Docker進深研究班廣宣學堂: 容器進階實務 - Docker進深研究班
廣宣學堂: 容器進階實務 - Docker進深研究班Paul Chao
 
廣宣學堂: R programming for_quantitative_finance_0623
廣宣學堂: R programming for_quantitative_finance_0623 廣宣學堂: R programming for_quantitative_finance_0623
廣宣學堂: R programming for_quantitative_finance_0623 Paul Chao
 
Docker workshop 0507 Taichung
Docker workshop 0507 Taichung Docker workshop 0507 Taichung
Docker workshop 0507 Taichung Paul Chao
 
Introduction to Golang final
Introduction to Golang final Introduction to Golang final
Introduction to Golang final Paul Chao
 
手把手帶你學Docker 03042017
手把手帶你學Docker 03042017手把手帶你學Docker 03042017
手把手帶你學Docker 03042017Paul Chao
 

More from Paul Chao (12)

AI與大數據數據處理 Spark實戰(20171216)
AI與大數據數據處理 Spark實戰(20171216)AI與大數據數據處理 Spark實戰(20171216)
AI與大數據數據處理 Spark實戰(20171216)
 
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated企業導入微服務實戰 - updated
企業導入微服務實戰 - updated
 
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated企業導入微服務實戰 - updated
企業導入微服務實戰 - updated
 
廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰
 
廣宣學堂: 機器視覺初探 10152017
廣宣學堂: 機器視覺初探 10152017廣宣學堂: 機器視覺初探 10152017
廣宣學堂: 機器視覺初探 10152017
 
Python網站框架絕技: Django 完全攻略班
Python網站框架絕技: Django 完全攻略班Python網站框架絕技: Django 完全攻略班
Python網站框架絕技: Django 完全攻略班
 
開放運算&GPU技術研究班
開放運算&GPU技術研究班開放運算&GPU技術研究班
開放運算&GPU技術研究班
 
廣宣學堂: 容器進階實務 - Docker進深研究班
廣宣學堂: 容器進階實務 - Docker進深研究班廣宣學堂: 容器進階實務 - Docker進深研究班
廣宣學堂: 容器進階實務 - Docker進深研究班
 
廣宣學堂: R programming for_quantitative_finance_0623
廣宣學堂: R programming for_quantitative_finance_0623 廣宣學堂: R programming for_quantitative_finance_0623
廣宣學堂: R programming for_quantitative_finance_0623
 
Docker workshop 0507 Taichung
Docker workshop 0507 Taichung Docker workshop 0507 Taichung
Docker workshop 0507 Taichung
 
Introduction to Golang final
Introduction to Golang final Introduction to Golang final
Introduction to Golang final
 
手把手帶你學Docker 03042017
手把手帶你學Docker 03042017手把手帶你學Docker 03042017
手把手帶你學Docker 03042017
 

廣宣學堂Python金融爬蟲原理班 20170416