iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 29
1
Modern Web

🍐放學後的網頁開發系列 第 29

[Day29] 柚子放學後的網頁生活 - Web Cralwer / Stock

上次帶了一些網頁爬蟲的介紹與範例
今天要來實戰看看囉 - 爬取股票

Stock

在爬取之前,我們至少要先知道我們要爬什麼
今天先從財務指標做入門,如果有空的話會再介紹技術指標

財務指標
其實財務指標有很多,從五大類來看

  1. 獲利:ROA、ROE
  2. 經營:營業成本率、營業毛利率、應收帳款周轉次數
  3. 品質:盈餘成長率、本業盈餘比
  4. 債償:流動、速動比、利息保障倍數
  5. 風險:負債比、FCF

以上列出的都是我們選股常看的指標
通常都會有一個恰當的數字評估,以ROA來說一般標準是6~7%,那越高當然越好,像這樣就可以用來篩選股票囉 !

今天我們要做的是

  • 本益比 = 收盤 / EPS
  • 殖利率 = Div / 收盤 * 100%
  • PB比 = 收盤 / 每股淨值

接著來到TWSE網站
http://www.twse.com.tw/zh/page/trading/exchange/BWIBBU.html

隨便找個股票

準備動作

import requests
from bs4 import BeautifulSoup
import pandas as pd


url = 'http://www.twse.com.tw/zh/page/trading/exchange/BWIBBU.html'

目標

我們會有一個function讓user輸入以下資料

像這樣call function

parseTWSE(2018,11,2891)

Function

按上面的表格,先讓user輸入三個資料

def parseTWSE(yr,month,no):
        str(yr)
        str(month)
        str(no)

接著因為這邊POST資料過去

        payload={
            'myear':yr,
            'mmon':month,
            'stock_no':no
        }

我們要仿造headers,讓瀏覽器以為是人在操作

        headers = {
        'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'
        }

最後把headers、payload都丟進去post

        res = requests.post(url,headers = headers,data =payload)
        print(res.text)

Finally

最後就會看到它彈回整個頁面囉
再依照你所需,用BeautifulSoup讓你可以選擇想要抓的table
以下classname放入table的class name 一樣以.起頭即可囉

soup = BeautifulSoup(res.text,'html.parser')
content = soup.select('classname')

下課囉 ~ 請鎖定 柚子放學後的網頁生活


上一篇
[Day28] 柚子放學後的網頁生活 - Flask project
下一篇
[Day30] 柚子放學後的網頁生活 - Final
系列文
🍐放學後的網頁開發30

尚未有邦友留言

立即登入留言