發表文章

目前顯示的是有「Data-Science」標籤的文章

值得關注的資料科學部落格、網站

值得關注的資料科學部落格、網站 前言大綱 在資料科學層面有許多絕佳的資源,要知道從何開始著手可能令人有些不知所措。本文列出對每個人而言都是最實用的一些部落格和網站,從資料科學專家到新手都適合。除了提供建議和學習資源之外,這份資料科學部落格、網站清單也包含可供隨時瞭解專業人士最新消息、趨勢和意見。 部落格 Data Science Central 格主:Vincent Granville 網站連結: DataScienceCentral.com Data Science Central 的作用正如其名稱所示,而且做為資料科學和大數據所有相關內容的線上資源中心。該網站涵蓋有關分析、技術、工具、資料視覺化、程式碼和工作機會的各種資料科學主題。業界專家提供有關關鍵主題的討論和見解。 該網站經常更新,每天有將近兩篇由撰稿人投稿的部落格文章,而且也提供可供討論或提出問題的社群論壇。 SmartData Collective 格主:Social Media Today 網站連結: SmartDataCollective.com SmartData Collective 是著重於商業智慧和資料管理趨勢的社群網站。與 Data Science Central 類似,這也可以透過業界專家的投稿來提供資料科學的見解。Data Science Central 直接關注整體資料科學,SmartData Collective 則著眼於更廣闊的領域,並探究資料科學如何與業務交互作用。 What's The Big Data? 格主:Gil Press 網站連結: WhatsTheBigData.com What's The Big Data? 在資料科學層面採取不同的方法,而且著重研究大數據成長對現今數位龐然大物的影響。該部落格的創辦人 Gil Press 相當熟悉大數據和資料科學,並從事資料研究的工作,目前擔任顧問職務。 Press 在本身的部落格中探討大數據如何與我們的生活交互作用,並影響從技術到企業到政府和政策的一切層面。他提供有關資料領域的消息和評論來源。 沒有不勞而獲的預感 格主:Kaggle 網站連結: Blog.Kaggle.com 此部落格與其他部落格略有不同,可以直接檢視資料科學家的思想、教學課程和消息。這是資料科學網站 Kaggle 的部...

Scrapy爬蟲框架

圖片
Scrapy爬蟲框架 前言 我們前面已經說明各類模組可以執行網路爬蟲設計,針對一般的網頁抓取已經足夠,這裡我們將介紹的 Scrapy ,其實是一個爬蟲框架,是一個快速的高階網頁抓取和網頁淬取框架,用於抓取網站並從其頁面中提取結構化數據。它可用於廣泛的用途,從數據挖掘到監控和自動化測試。適合大型爬蟲設計,我們將簡單以範例說明此框架 。 大綱 安裝 Scrapy 從簡單的實例開始 - 建立 Scrapy 專案 Scrapy 專案框架 Scrapy 專案框架的檔案說明 爬蟲程式設計 Scrapy 定位元素 使用cookie 登入 保存文件為 JSON 和 CSV 檔案 Scrapy 架構圖 數據流 DataFlow Scrapy Components 控件 專題爬取多頁 PTT 資料 安裝 Scrapy 早期在安裝 Scrapy 需要先安裝 Twisted,Twisted 是異步網路請求框架,現在這個 Twisted 安裝已經被整合在 Scrapy 安裝內,讀者可以使用下列方式安裝 Scrapy。 pip install Scrapy 安裝成功後可以看到下列畫面 從上述可以看到 Twisted 也安裝了,若是不知道是否安裝成功,可以使用輸入下列指令了解相關 Scrapy 的模組版本 。 scrapy version 從簡單的範例開始 - 建立 Scrapy 專案 Scrapy 專案框架 這裡我們先用一個簡單的網頁測試 Scrapy 的功能,對於 Scrapy 而言,想要執行設計爬蟲程式必須建立 Scrapy 專案,專案建立方式是使用下列指令: scrapy startproject 專案名稱 此例我們在 Windows PowerShell 環境進入~/scrapyProject 資料夾,然後使用下列指令建立專案: scrapy startproject yahoo 可以看到下列結果 這時 Scrapy 模組就自動在我們的 ~/scrapyProject/yahoo 資料夾下方建立了一系列專案檔案。 上述就是我們建立 Scrapy 專案 yahoo時,模組 Scrapy 自動產生的框架完整結構與內容,有關各個 Python 檔案內容意義,將在下面說明。 Scrapy 專案框架的檔案說明 在 ~/scrapyProject/ ...

Requests-HTML 模組

圖片
Requests-HTML 模組 前言 Requests-HTML 模組  是原 Requests 開發者另一個巨大貢獻,他包含所有 Request 模組功能,更重要的是新增加了數據清洗與爬取使用 ajax 動態數據加載網頁的功能,它的觀念是 ajax 動態網頁數據會被加載到 Chromium 瀏覽器網頁,然後爬蟲程式自行在 Chromium 瀏覽器爬取,更多相關資訊可以參考。 大綱 安裝與導入 使用者請求Session 認識回傳資料型態與幾個重要屬性 數據清洗與爬取 使用 find() 方法 使用 xpath() 方法 搜尋 search() 搜尋豆瓣電影網站 Ajax 動態數據加載 安裝與導入 安裝方式如下 pip install requests-html 請留意程式導入此模組方法如下 import requests_html 可以使用模組屬性 DEFAULT_URL 了解是否安裝此模組成功  使用者請求 Session Requests 的 Session 模式可以讓請求對話持續保持,只要使用者與伺服器雙方沒有關閉此連線,就持續存在。 Requests-HTML 的請求是承襲 Requests ,不過 Requests-HTML 的請求只能使用 Session方式。 使用 Requests 模組時,常用的 get()、post() 方法,也可以應用在 Requests-HTML 模組,同時在 Requests 模組內,使用 get() 、post() 的參數,也可以使用在 Requests-HTML 模組的 get()、post() 。所以先前章節介紹的 headers、proxies、cookies... 等等的參數,也可以運用在此 get()、post() 。此外,偽裝瀏覽器的表頭 headers ,如果沒有設定, Requests-HTML 模組會使用預設的表頭 headers 。在安裝此模組時,可以看到下列路徑 ~\Python39\Lib\site-packages 的 requests_html.py 檔案。 開啟上述檔案可以看到下列預設的表頭 headers 預設內容: DEFAULT_ENCODING = 'utf-8' DEFAULT_URL = ...

股市數據爬取與分析

圖片
股市數據爬取與分析 大綱 證券櫃檯買賣中心 獲得特定上櫃股票的 CSV 檔案 一個月的收盤價分析 台灣證券交易所 獲得特定上市股票的盤後資訊 台泥年度收盤價分析 獲得每天股票每5秒的成交資訊 Google 全球股市資訊 Yahoo 股市資訊 台灣股市資料讀取與圖表製作 Stock建構元 Stock物件屬性 Stock 物件方法 取得單一股票之即時資料 realtime.get() 證券櫃檯買賣中心 證券櫃檯買賣中心是台灣上櫃股票的買賣中心,本文我們將講解獲取特定股票的是 CSV 檔案方式,然後做基礎股票分析 。 獲得特定上櫃股票的 CSV 檔案 請進入 證券櫃檯買賣中心網頁 。 點選上櫃 =>盤後資訊 => 個股日成交資訊,可以看到下列畫面 : 讀者可以參考上述圈選欄位,自行輸入股票代碼和資料年月,就可以看到特定股票在特定年月份的成交盤後資訊。下列是筆者填選 110/09 月份,股票代碼 6488 環球晶的盤後資訊 上述可以看到另存 CSV 按鈕,點選就可以下載,下列是我們以 Microsoft Excel 開啟此檔案的畫面 。 同時我們也使用相同名稱 ST43_6488_202109.csv 儲存此 CSV 檔案。 一個月的收盤價分析 我們有了上述 CSV 檔案,就可以使用我們了解的繪圖知識,製作股價走勢圖,當然在製作前我們必須了解此 CSV 檔案,才可以讀取我們想要的內容。首先這個檔案的前 5 行是股票基本訊息,我們可以忽略,此外最後一行是計算本月成交的日期數,也稱成交筆數,我們也須忽略,可以參考以下範例。 範例 pythonStock-01.py :  設計上櫃股票,股票代號是 6488 的 2021 年 9 月,每天最高價、最低價、收盤價的股票走勢圖。這個程式設計中,我們先將所讀取的 csv 檔案轉成串列 list,然後使用串列切片觀念,刪除前5行和最後一行。 # pythonStock-01.py import csv import matplotlib.pyplot as plt from datetime import datetime fn = 'ST43_6488_202109.csv' with open(fn) as csvFile: csvReader = csv.rea...

Python 與SQLite 資料庫

圖片
Python 與SQLite 資料庫 大綱 SQLite 基本觀念 資料庫連線 SQLite 資料類型 建立SQLite 資料庫表單 增加SQLite 資料庫表單紀錄 查詢SQLite 資料庫表單 更新SQLite 資料庫表單紀錄 刪除SQLite 資料庫表單紀錄 DB Browser for SQLite 安裝DB browser for sqlite 建立新的 SQLite 資料庫 打開舊的secret資料庫 將台北人口數儲存至 SQLite 資料庫 SQLite 基本觀念 在先前我們有說明 CSV、JSON...等資料格式,我們可以將資料以這些格式儲存,不過我們使用資料時,有時候只是取一個小小的部分,如果每次都要大費周章的開啟檔案處理完成在儲存檔案,其實不是很經濟的事情。 一個好的解決方式是使用輕量級的資料庫程式當作儲存媒介,未來我們可以使用資料庫語法取得資料庫的部分有用資料,這將是一個很好的想法。本文我們將介紹如何使用 Python 建立 SQLite 資料庫,同時也將說明使用 Python 插入insert、截取select、更新update、刪除delete ,SQLite資料庫的內容。 Python 3.0版以上安裝完成後有內建 SQLite 資料庫,本文將以此為實例說明,在使用此 SQLite 前需要 import 導入此 SQLite : import sqlite3 資料庫連線 執行 Python 與資料庫連線的方法如下 : conn = sqlite3.connect(“資料庫名稱”) 上述 conn 是定義的物件名稱,讀者也可以自行定義不一樣的名稱。 connect()  方法執行時,如果 connect() 內的資料庫名稱存在,就可以將 Python 程式與此資料庫名稱建立連線,然後我們可以再 Python 程式內做更進一步的操作,如果這樣庫名稱不存在就會以此為名稱建立一個新的資料庫,然後執行資料庫連線。 資料庫操作結束,我們可以在 Python 內使用下列方法結束 Python 程式與資料庫的連線。 conn.close() 範例 pythonSQLite-01.py :  建立一個新的資料庫 myData.db ,我們習慣使用的 db 當副檔名稱。 ...