發佈日期: 發佈留言

MT4與MT5的差別

MT4/MT5比較

什麼是MetaTrader交易平台?

MetaTrader是全球最具知名度的差價契約(CFD)交易軟體,

除了提供電腦版(Windows)與手機版(iOS、Android)的交易設備都有支援外,

即時互通交易、可彈性調整的用戶介面、隨時可查閱的線上交易報告,

還有數十種技術分析指標,並能使用一鍵下單、程式自動交易系統和多種智慧單,

交易者可以自由選擇最便捷的方式,全天候24小時交易不中斷。

MT4與MT5交易平台差在哪?

MT4和MT5皆為 "MetaQuotes Software"所開發的交易平台工具,
這兩個平台都提供各自語法的自動化交易系統、大量的指標、腳本、內建語法等工具,
對於寫程式能力在一定水平的用戶,甚至可以用他雖然稍微難一點,但卻靈活很多的語法,

它們也都提供大量自定義功能,等於每個使用者的交易體驗都可根據自身需求量身定制。

不過,兩者之間有各自的優勢,故了解自己適合使用哪個平台會是需要思考的部分。

MT4 的特色:

Metatrader 4 (以下簡稱 MT4 ) 交易平台是非常有名的交易軟體,可以說是設定了行業標準。它不直接通過平台提供交易,不過也因為中間卡了經紀商,價差會比起實際價差稍微高一些些。

現在大部分的外匯經紀商都提供了 MT4 交易,價差也和經紀商本身的交易軟體差不多了。

雖然它與 Metatrader5 (以下簡稱 MT5 )都是由同一公司(基於 Cyprus 的 MetaQuotes 軟體公司)開發的,但對 MT5 提供服務的交易平台還是相對少見一些。

但現階段台灣券商只提供 MT5。

而 MT4 除了常見與方便外,最大的特色在於市場存在時間夠久,其實針對某些使用族群,穩定性其實比起新穎來得更加重要,畢竟我們都不希望在行情出來時,結果自己的交易軟體是有問題的對吧?

MT5 的特色:

MT5 是被設計成彌補一些 MT4 不能做的事情,也就是它針對的是一個不同的市場。

簡單來說,MT5 的目的是能夠交易外匯以外的市場,如股票和大眾商品,因為它比起 MT4,能夠更好地進入這些交易所(多數是法規關係)。

在 MT5 開發和發布的時候,可以假設 MT5 已經預見到了大宗商品交易的熱潮,並開發了適合該市場的交易軟體。

另一個主要的差別設計因素是它符合美國的「無對沖」規則,它規定美國外匯經紀商的客戶必須以 F.I.F.O.(先入先出)為基礎進行交易。

也就是說,如果一個交易者買多 1手 歐元/美元,然後再買多 1手 歐元/美元,這時候如果需要賣出 1 手歐元/美元,那麼第一個交易會先被平倉出場,而只留下第二筆在場上(後進後出)。

但 MT4 是單獨記錄每筆交易、並允許單獨管理每個交易,也就是多空單的歐元/美元可以同時存在於場上。

而 MT5 則自動合併所有交易。因此,除非特別指定開啟對沖模式,否則一般方式會自行多空沖銷。

簡而言之,MT5 是為了吸引非外匯市場和美國市場而開發的,並且要比 MT4 更好地滿足這些市場的監管需求。

MT4/MT5 差異比較表:

以下是兩者大概的比較,也讓大家做個參考:

交易平台MT4MT5
經紀商支援大部分海外券商都支援 MT4僅有部分券商支援( 台灣只有MT5 )
操作介面功能簡單,適合一般投資者。功能多,適合專業交易者。
交易市場外匯/CFD外匯/CFD、期貨、選擇權、股票等
EA程式支援量多、生態系豐富。MT4 的程式與 MT5 無法互相轉換使用。
對沖可以。特別開啟。
訂單顯示每張訂單分開顯示。同方向、同商品訂單相加一同顯示。
掛單種類4種6種(多 buy/sell stop limit)

總結:

其實到底使用哪個平台我覺得倒不是那麼重要,因為雖然 MT5 看似比較新,但其實 MT4 的生態圈相對完整很多,

很多想不到的功能,在 MT4/5 上都有人開發,然而兩者最大的特色在於:

用小資金去滿足交易需求,讓資金風險可以隨著資金小 + 多部位分散得到降低,

好啦~這章節大概分享到這邊,如果有任何問題歡迎底下留言討論囉!

發佈日期: 發佈留言

八招教你遠離MT4外匯保證金黑平台

遠離黑平台

剛開始用MT4/5 交易的新手很容易被外匯平台(經紀商)搞混,以為某經紀商就是MT4的平台開發商,

也因如此,網路上多出很多關於MT4/5 詐騙、假數據、問題平台等等,故這章節就是來教大家如何分辨假平台囉!

首先當然是:

如何選擇經紀商:

公司有品牌、成立時間久:

能夠開久當然有他的理由,雖然交易量也是個參考依據,但近期很多交易商都買交易量,故交易量著實漸漸失真了。

公司有完整的監管、牌照等:

常見的就是:

美國全國期貨協會(NFA)
英國金融行為監管局(FCA)
澳大利亞證券與投資委員會(ASIC)
瑞士金融市場監管局(FINMA)

其他有些牌照有效力,但數量種類太多,所以不一一列舉,

但基本上這些還要搭配登記國家,有些登記在英國卻只有澳洲牌照,這種也最好避免一下比較好。

有中文的使用介面,並網站具備多國語言:

基本上中文介面是為了方便溝通,但多國語系表示至少願意花錢面對不同面向的客戶,也表示規模比起只有一種的相對大很多,這種也會相對有保障。

如何分辨假(黑)平台:

帳戶資金的安全性

交易商一般有兩個銀行賬戶:一個是企業戶,主要是用來存放公司營運資金,如員工薪水、管理費用等;

另一個賬戶是客戶賬戶,用來存放客戶的交易資金。要選擇將2個賬戶分離的交易商,比如將客戶資金交給第三方資金管理公司或者採用受託人服務(信託)的才是比較安全的。

交易費用

使用直通式(STP)經紀商,一般只需要按照槓桿比例交一定的保證金,不需要額外的費用,注意防止經紀商收取其他手續費。

如果你選擇ECN的形式,則會需要支付佣金,每個標準手數(手(Lot)是外匯交易中交易數量的單位,在外匯交易中一手代表10萬基礎貨幣)約為10-20美元。

比較點差

直通式的經紀商利用點差賺錢,盡量選擇固定點差較小的經紀商,點差越小,成本越低,但也得注意可能會有經紀商利用大家追求低點差的心理誘導開戶,經紀商安全是第一,其次再追究利益問題。

注意滑點

因為外匯交易的高流動性,滑點(指客戶下單的價格與實際交易價格之間的差距)在所難免,但有些交易商會做惡意滑點,所以注意自己的交易訂單滑點是否異常。

投資者可以在選定受監管的平台後,先入金小額資金測試平台操作的穩定性,確定不影響交易操作後再增加投入資金。

交易槓桿與帳戶保證金

因為外匯交易的槓桿比例決定需要支付的保證金的金額,如選擇100:1槓桿,那麼只要1/100的交易金額來做保證金。注意看外匯交易商是否可供選擇多種槓桿、是否有迷你賬戶等。

有些外匯交易商會提供迷你賬戶和微型賬戶,最低只需要25美元就能擁有外匯交易賬戶,這種交易需求資金低於平均水平的、或是槓桿極高的,都很可能會有問題。

交易平台出入金

交易商提供的交易平台工具是否穩定,便利,易用。賬戶的訂單執行速度,入金出金是否實時。一般入金最好能夠即時到賬,出金則是1-3個工作天內尤佳。

這種最快的方式就是去看:

1. 有沒有交易出入金條件:例如要交易滿多少手(金額)才能出金。

2. 有沒有辦法正常出金:入金500塊後,能不能直接申請出金。

以上兩項都通過才算是基本合格哦!

貨幣的多樣性

選擇可提供多樣化貨幣對的交易商,注意一些交易商平台交易品種的局限性。

特殊檢視方式:MT4版本

上圖指的是MT4/5官方的認證標誌,這個誰來都是這樣的。

上面這張圖則是黑平台的盜版MT4,基本上改成這樣的都是假的。

上網搜尋該公司名稱:

問問看GOOGLE,看看有沒有人上當受騙、討論多不多,如果無人問津或是負面消息很多的,基本上都避免掉即可。

總結:

好啦,說了這麼多,大家也可以上外匯天眼通去查查看,因為上面有很多相關的討論,大家可以自行參考囉!

(免責聲明:以上只是告訴各位如何分辨,降低受騙機率,並不表示就一定不會遇到黑平台哦!)

發佈日期: 發佈留言

第一次交易外匯保證金就上手

thinking

什麼是CFD、外匯保證金?

差價合約,又稱CFD(Contract For Difference),簡單來說,他有幾個特色:

  • 金融衍伸性工具
  • 是買賣雙方的一項合約
  • 槓桿大,但交易需求資金小,所以可以有效分配資金。

說白了就是買方和賣方之間的一份合約,根據合約由賣方付給買方資產現行價值和平倉價值之間的差價。它允許交易者利用標的資產的價格上漲或價格下跌獲利。它們通常用於推測市場。

比方說我今天想要買一張蘋果股票,我除了可以在交易所下單以外,也能向CFD平台下單,這個合約代表了股票當下的價錢與我們訂下合約的差價,假設我們在蘋果的股價為100點時買進合約,當股價上漲五點時我們結束掉此合約,就是賺了五點的價值。

並且它可以進行放空:

什麼是放空:

以這張圖而言,我們先賣出合約,當行情下跌時我們是在高價賣出,低價買回,賺了中間的差價後結束此合約。

如果是先賣出的話,我們其實是先向平台借一份合約來賣出,等價格跌了後再買回一份合約還給交易商。

CFD的優勢與劣勢

優勢:

  • 槓桿:透過放大倍數的額度進行交易,僅需支付一部份保證金即可參與市場的漲跌。
  • 雙向交易:做多、做空。
  • 契約規格彈性:商品最小交易單位依經紀商而定,不再受限於「一口」或「一張」的下單量,投資人可依據資金量或交易方式自行調配。

劣勢:

  • 槓桿風險:如果保證金不足或使用槓桿過大,遇到市場波動加劇之時,容易會有被「斷頭」的風險,因此盡可能避免將操作資金使用得太緊,或讓保證金水位充足會是一個較安全的做法。
  • 交易商風險:
    • 資金安全風險 (平台是否合法,出金服務是否有保障)
    • 流動性風險 (提供過大的點差報價)

股票、期貨、CFD 比較表:

比較項目差價合約期貨股票
商品股票、外匯、ETF、指數、商品、加密貨幣等等股票、外匯、ETF、指數、商品、加密貨幣等等股票、ETF、權證
交易成本買賣價差、點差、隔夜利息買賣價差、手續費、交易稅買賣價差、交易稅
槓桿
交易需求資金
隔夜利息
實物交割
到期日

什麼是隔夜利息?

最簡單好理解的譬喻是:交易CFD像是融資買進,因此融資的資金會有利息。

而利息的算法是按天計算的,但具體在外匯上的解釋可以理解買入A貨幣/美金後,因為買入A貨幣的利息大於銀行的美金利息,故你得付出利息,反之,則可能會收到利息;

雖是這樣說,但多數的商品CFD中,因為並不是外匯,故基本上都是要付錢居多,所以都理解成開槓桿利息即可。

我該如何開始?

1. 選擇合法、正規的經紀商

每間平台所交易的商品不一樣以外,因為MT4樹大招風,故很多平台其實都是有問題的,詳情可以參考如何遠離黑平台相關文章

2. 開戶教學與平台排名選擇

平台如何開戶,以及開戶相關問題可以參考這邊

3. 免費模擬帳戶教學與MT4下載

無論有沒有開好真實帳戶,可以先下載該經紀商的MT4下來試用與檢查看看,才知道適不適和自己哦!相關文章可以參考這篇哦!

發佈日期: 發佈留言

如何使用python 帶 cookie 去網站?

什麼是 Cookie? 何時需要用他?

有時候我們需要爬取登入後才能訪問的頁面,

這時我們就需要藉助 cookie 來完成模擬登入和會話的維持了。

那麼伺服器是如何知道我們已經登錄了呢?

當用戶首次發送請求時,伺服器端一般會生成並存儲一小段信息,包含在response數據裡。

如果這一小段信息存儲在客戶端(瀏覽器或硬碟),我們稱之為cookie。

如果這一小段信息存儲在伺服器端,我們稱之為session(會話)。

這樣當用戶下次發送請求到不同頁面時,請求自動會帶上cookie,這樣伺服器就知道用戶之前已經登入訪問過了。

以爬取需要先知道滿 18 歲的 PTT 頁面為範例:

以下就是我們這次的範例目標:

https://www.ptt.cc/bbs/Gossiping/index.html

https://www.ptt.cc/bbs/Gossiping/index.html

但因為在使用python進去 18禁 頁面時,

是會跳出條件選擇的,所以沒有帶cookie時,是爬不到頁面的哦!

那麼就直接開始吧!

先打開第一層的 F12 看一下目前的 cookie :

在尚未點選 滿18歲時的 cookie 長相
這是 點選後進去的長相

所以我們知道就是差在 over18 = 1 這個內容,那就直接把它加進去即可囉!

首先我們先呼叫基本套件,並把目標網址先設定好:

import requests
from bs4 import BeautifulSoup
url = 'https://www.ptt.cc/bbs/Gossiping/index.html'

再來就是把 header 做好,並且將剛剛的 over18 = 1 放進去:

headers = {
    "cookie": "over18=1",
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"
}

最後就像是一般爬蟲一樣,將對應的丟進去即可囉!

r = requests.get(url, headers=headers).content
soup = BeautifulSoup(r, "html.parser")
text_titles = soup.find_all("div", class_="title")

for title in text_titles:
    if title.a != None:
        print(title.a.string)

那結果就會如下圖:

這就是帶cookie後,相對應爬出來的內容囉!

那這篇文大概就介紹到這邊,因為 cookie 的使用方式很多元,

會需要考量很多種狀況,所以如果各位真的有興趣,

我再找時間寫其他相關的內容囉!

那程式碼我附在底下,感謝大家!

完整程式碼如下:

import requests
from bs4 import BeautifulSoup
url = 'https://www.ptt.cc/bbs/Gossiping/index.html'

headers = {
    "cookie": "over18=1",
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"
}
r = requests.get(url, headers=headers).content
soup = BeautifulSoup(r, "html.parser")
text_titles = soup.find_all("div", class_="title")

for title in text_titles:
    if title.a != None:
        print(title.a.string)
發佈日期: 發佈留言

爬蟲第四步:偽裝一個headers吧!

python book
大家是不是常常會在爬蟲中,發現某些網站怎樣就是爬不下來呢?

沒錯,這是非常常見的問題!

一、網站server端的loading不足

這是啥意思呢?也就是指可承載的流量很低,

導致如果爬蟲一次要很多資料,他就爆炸overload(超載),

於是你的爬蟲就失敗了…

這狀況雖然現在比較少見,但如證交所的證券清單,

那頁的loading量就很低,很常掉封包或失敗呢!

二、有防爬蟲的設置

但多數時候都是狀況 2 ,只要是這狀況,就會讓爬蟲爬失敗,

那這時候該怎麼辦呢?

首先我們先區別幾種可能:

  1. 一秒太多次requests
  2. 一定時間內太多有規律、同IP的爬蟲
  3. 特殊渲染的網頁
  4. 直接判定送來的requests有沒有headers

1、2 的解決方案:

其實防爬蟲並不是因為他們不想讓你取得資料,

而是為了保護伺服器(server),

因為對於爬取方很簡單,就是我全都要~!

但對於網站方,如果人人都用程式來把網站當吃到飽(buffet)

那網站隨之而來的就是大量的loading,

這樣不只對網站增加負擔,還會讓網站管理費用扶搖直上呢!

那因為防爬蟲的最基本就是找出那些定期登入網站的對象,

或是瘋狂按F5重新整理的狂人….

當你用while每秒都爬一次時,你就是那個狂按F5的狂人…

那這時候當然得對這些人下點限制,否則就侵占了其他人使用這個網站的權益啦!

所以我們得加上 schedule 與 time.sleep() ,並在相關函式內加上隨機,

讓爬蟲週期產生隨機性,

例如:

schedule:
import schedule
import time
import random
import datetime


def job():
    t = datetime.datetime.now().replace(microsecond=0)
    print(str(t) + "  Here is QP, Hello")


i = 0
for i in range(10):
    delay = random.randrange(1, 5)
    print(delay)
    schedule.every(delay).seconds.do(job)


while True:
    schedule.run_pending()
    time.sleep(.01)
time.sleep:
from random import randint
from time import sleep

sleep(randint(10,100))

3 的解決方案:

得靠 Selenium 去解決,這個會很依照網頁需求去討論。

4 的解決方案:

也就是今天的主題囉!

在任何爬蟲開始之前,加入以下CODE:

headers = {
    'content-type': 'text/html; charset=UTF-8',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36'
}

上面那個就是告訴爬蟲以什麼方式執行:

  1. Mozilla
  2. AppleWebKit
  3. Chrome

以及用甚麼解析這個網頁:

  • ‘text/html; charset=UTF-8’

小備註:上面的意思就是用text/html的方式,以UTF-8的格式去做解析,UTF-8通常就是指中文字型哦!

最後就是把 headers 加入我們的爬蟲設定囉!

res = requests.get(你要爬的url, headers=headers) 

這樣一來,我們想要的爬蟲就可以被認為是正常的登入,

進而就可以取得想要的資料囉!

發佈日期: 發佈留言

LineNotify X Python(二)爬取新聞與推送格式

上一篇居然反應頗熱烈,這篇就應觀眾需求,

來跟大家針對Notify去做更進一步的講解囉!

上一篇文章中提到Python如何與LineNotify做整合,

這篇就要與大家來分享Notify即便拿到數據後,

要怎麼做成自己要的展示格式囉!

為何需要調整格式:

如果用手機瀏覽、電腦版瀏覽,每個訊息所顯示的單行長度其實都不一樣,所以這時候就像打文章一樣,需要讓文字到一定程度後就得要換行,避免格式跑掉才行,或是有不同需求所需要衍生出不同的使用方法等等,故調整格式也就是讓LINE通知自己時,自己可以快速瀏覽訊息的方式。

我們主要會分成這三篇來描述:

文字格式:換行、加粗體(待補、敬請期待)

上傳特定圖片:請參考這一篇(待補、敬請期待)

上貼紙做圖片互動:請參考這一篇(待補、敬請期待)

取得新聞資訊:

以鉅亨網當範例:

找到頭條網址: https://news.cnyes.com/news/cat/headline?exp=a

找到對應的div:

開始coding囉!

第一步:完成基本import

把該import的丟進來,也把之前提到的LineNotify的函式也丟進來,同時import token

第二步:觀察內容

會發現文章都是在 class=”_2nhA theme-left-col” 的這個設置裡。

第三步:get 相關資訊

第四步:找出前五篇最新的新聞:

將網址與文字分開,並且用find_all的list特性把前五篇找出來,

之後將找出來的內容存在news 的 list 裡面:

第五步:將相關資訊丟給 LineNotify的 函式,就可以在執行後完成傳送囉!

完整程式碼如下:

# 客官以下請自行取用
import requests
from bs4 import BeautifulSoup
from LineNotify import lineNotifyMessage
from config import LineNotify_qp_datacollecting

res = requests.get('https://news.cnyes.com/news/cat/headline?exp=a').content
soup = BeautifulSoup(res, 'html.parser')
go = soup.find("div", {"class": "_2bFl theme-list"})
basic = 'https://news.cnyes.com'
news = []
for i in range(5):
    news.append(
        [
            go.find_all('a')[i].text,
            basic+go.find_all('a')[i]['href'],
            '     '
        ]
    )
# print(news)
lineNotifyMessage(LineNotify_qp_datacollecting, news)

小技巧提醒:

  • 之所以要多存’ ‘的空白字串是因為如果不存,那Line自己轉成網址的時候,會把不相干的文字也轉成網址。

最後,就成功收到訊息啦!

至於想要排程或是自動化的,就可以去加入time schedule等函式去完成自動執行哦!

這篇就到這邊,謝謝大家啦!

其餘文章還在趕工,拜託別催啦~

發佈日期: 發佈留言

爬蟲第三步:坐而言不如起而行

前言:

因為我們使用的是python去實作這部分,

所以如果不確定應該怎麼開始python沒關係,

筆者我也是先東抄抄西寫寫,拼拼湊湊把東西做出來後,

久了就會漸漸對於正在做的事情有感覺,進而漸漸學習起來的,

如果對於網頁架構不熟悉的朋友,可以先參考看看前幾篇介紹網頁架構的文章哦!

而如果不知道解析出來的網頁怎麼看得朋友,也可以看看先解析網頁介紹

所以不要怕做錯或是不知道怎麼做,直接動手就是最正確的,我們直接開始!

第一步:安裝Python Coding環境

工欲善其事,必先利其器!

這邊我們使用Pycharm來當作coding工具哦!

第二步:認識爬蟲初步套件

Request

把他想成網路世界的的自己,所有需要跟網路上任何對象互動的動作,基本上都可以藉由這個套件來完成,

隨著未來課程越來越深,這工具的使用也會越來越多元哦!

BeautifulSoup

可以快速解析網頁 HTML 碼,基本上算是特別針對爬蟲所設計的套件,

所以功能當然會是以解析網頁內容為主囉!

第三步:留下自己想要的內容

將爬蟲爬下來的網站內容,

經由 BeautifulSoup 的篩選功能只留下自己想要的部分內容後,

藉著python 存成list或是甚至轉成dictionary後,

將其資料去蕪存菁,

整理成自己想要的格式就完成第三步囉!

第四步:儲存自己想要的資料

 最後再將整理好的格式,

看是要使用csv套件逐行儲存不用管內容呢;

或是用pandas.to_csv 去將整份表格資料依序存進去;

無論是那種,抓好的資料先存起來,都可以讓未來想要使用時不用重新抓囉!

發佈日期: 發佈留言

爬蟲第二步:解析網頁

前言:

嗨各位好,進到第二步驟了,上一篇講完關於網頁的基本架構,這章節就要來講解到底網頁解析長怎樣呢?

之所以需要介紹這個是因為,如果不知道網頁解析長怎樣,就跟去了超市想買4號電池,卻不知道電池到底放在哪、甚至不知道4號電池長怎樣;

但網頁可沒有店員可以告訴你商品在哪邊呢,所以這時候就只能自己去認識網頁內容了!

話不多說,我們直接開始:

第一步:網頁架構一般長怎樣呢?

一般的網頁組成就會長這樣哦!

是不是覺得看不懂?沒關係,讓我們一步一步學習分析!

用顏色區別後還是很亂?讓我們繼續往下看
紅色就是網站文字,粉紅色則是網站最基本的框架長相哦!

只留下紅框跟粉紅框,我們直接看這個簡單的範例:

大家可以清楚看到紅框處其實就很像是正常的文字內容對吧?沒錯,這就是網站上一般會顯示出來的文字囉,爬蟲的目標通常就是這些文字們!

而粉紅框處其實可以看到 ‘head’ ‘body’ 這個頭跟身體的單字,

head 指的其實就是網站頁面的大標框架,就當成是超市的招牌本身吧,告訴你這邊主要就是招牌的鐵架子,放招牌內容的地方,

而當中的title指的就是招牌的名稱囉,例如7-11等等,讓客戶可以一眼就知道這個網站是幹嘛用的,

而body當然就是指超市內的東西啦,

所以其實可以看到除了head內放個title 外,其他都放在body內囉!

再來繼續解析body內的資訊:

聰明的你肯定發現,<名稱>與</名稱>中,後面多了一個斜線 ( / )的符號,

這就是Html中,告訴你上一個<名稱>中的東西,只到</名稱>這邊就算結束囉!

那麼我們就知道,哦~那看一下這當中是不是我們要的東西就可以了,

而比較常見的則有:

  • h2:指的就是標題的大小,通常有h1-h6;
  • p:指的就是最一般的文字
  • a:就是指標籤,通常跟超連結一起出現,底下會說明
  • b:一般常見的是讓文字粗體的意思

 

而當看到 href = “某串東西”時,就表示這邊就是網址囉,例如PCHOME內每個商品頁面其實都會給一個Link,所以如果要爬網址,找關鍵字’href’就可以囉!

這邊的b(粗體)後面又多了 class,這是啥意思呢?

其實就是針對這個內容做的類別,通常是讓該內容可使用CSS的設計,

例如你希望100段文字內,被強調的都轉成紅色、字體都要放大,那你就可以去呼叫那個負責轉成紅色且放大文字的CSS內容,並且套用在你想要的段落上,這樣就不用重複寫囉!

而這個在未來某些狀況下,也是能針對class的內容進行爬蟲的。

今天講了那麼多,對於網站解析有沒有初步認識了呢?

那麼我們下一章節,就要開始講解如何做一個最簡單的爬蟲囉!

量化通是個致力於全民量化金融教育的社群,我們希望透過由淺入深的內容,帶領大家以正確觀念來實踐自動化的金融投資研究分析。內容涵蓋傳統研究分析方法、量化分析、選股、爬蟲、API 串接、回測、以及下單等跨領域多元知識,由各領域專家為大家提供最精闢的內容。

如果覺得我們的文章還不錯,別忘了掃 QR Code 或點擊下方連結,按讚並追蹤量化通的粉專,我們將努力為您奉上每篇精選文章。

◎量化通FB專頁:https://www.facebook.com/QuantPass
◎量化通網站:https://www.quantpass.org
◎學習更多點這裡 → https://lihi1.cc/NVULo

發佈日期: 發佈留言

LineNotify X Python打造專屬通知機器人

隨著LineNotify機器人越來越夯,當然要跟上熱潮啦!

接下來廢話不多說,直接用Python帶大家實作LineNotify機器人!

Line Notify 介紹

根據 LINE Notify 官方網站介紹 :

透過LINE接收其他網站服務通知, 在與與網站服務連動完成後,LINE所提供的官方帳號「LINE Notify」將會傳送通知。 不僅可與多個服務連動,也可透過LINE群組接收通知。

溫馨提醒:LineNotify至少要Python 3.7以上才能用哦!

第一步:申請 Line Notify 發行權杖:

  1. 得擁有Line帳號(當然阿不然要通知誰呢哈哈哈!)
  2. 經由 https://notify-bot.line.me/zh_TW/  進行登入
  3. 點選右上方 帳號名稱選單中的「個人頁面」
登入自己的Line帳號

點選個人頁面→發行權杖
填寫機器人名稱後,選擇”透過1對1聊天接收LINE NOTIFY的通知”
一定要記好自己的權杖內容哦,建議先複製下來貼在txt以防萬一哦!

第二步:開始撰寫自己的python腳本:

# -- coding: utf-8 --
import requests

def lineNotifyMessage(token, msg):
headers = {
"Authorization": "Bearer " + token,
"Content-Type": "application/x-www-form-urlencoded"
}

payload = {'message': msg}
r = requests.post("https://notify-api.line.me/api/notify", headers=headers, params=payload)
return r.status_code


# 你要傳送的訊息內容
message = '你的機器人完成啦~之後想傳啥就都丟給我吧!'
# 將剛剛複製下來的Token取代以下''中的內容即可
token = '求你了就直接取代我吧'

lineNotifyMessage(token, message)

第三步:執行並且測試是否能收到:

這樣就成功囉!希望大家喜歡我的文章啦!

發佈日期: 發佈留言

爬蟲第一步:認識網頁的基本架構

一、為何要認識網頁架構?

既然要談到資料蒐集,爬蟲勢必就是得好好學習的一環,

一旦討論到爬蟲,就不得不談到網頁架構囉,

有些人會問說:「那爬蟲與網頁架構有啥關聯呢?」

而答案其實就是因為「爬蟲說穿了就是將網站上的資料擷取下來。」

這樣聽起來可能有點繞口,把爬蟲想成當我們想要網站上的一篇文章內容、一些表格資料,甚至是某張圖片,這時我們會怎麼做來將我們想要的內容存下來呢?

是不是肯定就是複製貼上到WORD?或是對圖片按右鍵去另存圖片呢?

是的,爬蟲就是一個讓程式做跟人們一模一樣的事情,只是說人們判斷想要的資訊很簡單(畢竟是聰明的人腦嘛~),

但程式並沒有那麼聰明,所以這時候只能夠讓人們先告訴程式我想要那些資料、那些資料該長怎樣,存下來時的排版或是分類方式該是如何等等等,讓程式可以照我們的需求乖乖把事情做好呦!

二、網頁架構長怎樣呢?

如下圖,網頁一般分為前端(使用者接觸的到的)與後端(使用者接觸不到的)。

把它想成超市就很好理解了,網頁的後端如同超市的營運管理系統,比如說如何決定牛奶多少錢,以及後面物流該多久進一次貨、怎麼計算一天營業額等,都是屬於管理系統的管轄範圍。回過頭來,網站後端就是資料庫、程式該怎麼運作等「用戶從介面看不到的功能設計」。

而前端就像是超市中的牛奶該放在哪一櫃、櫃台該在設置在哪邊、動線怎麼規劃、乃至於讓客戶覺得超市美輪美奐想坐下來休息等等與「客戶可以第一線接觸到的使用者設計」。

所以當我們使用爬蟲來做資料擷取時,就像是我們上網去找資料想把它存下來一樣,所以基本上其實就是在跟網頁的前端互動囉!

三、那網頁的前端有哪些要知道的呢?

首先我們要先認識前端基本組成,以剛的超市為例:

  1. HTML:制定原則:
    1. 以超市為例:得有防火設備、出入口、燈光、人員、商品等最基本的設備
    2. 以網頁為例:例如看到 ‘image’ 就表示這是張圖片等原則型的標準內容
  2. CSS:美化環境:
    1. 以超市為例:改變燈光色彩、地板材質、員工服裝、桌椅配色等等
    2. 以網頁為例:網頁顏色、文字顏色、旋轉、模糊等等美感進階設計
  3. Javascript
    1. 以超市為例:ibon可以取票、結帳可以掃載具、刷悠遊卡等等
    2. 以網頁為例:按按鈕可以顯示文章、在網頁上輸入日期可以查詢車班等等

而爬蟲,就是基本上針對這三大項內容進行資料蒐集囉!

以上就是大概在爬蟲開始前,必須要知道的網頁內容

  • 小小總結:
    – HTML建立起網頁的主結構。
    – CSS負責美化網頁。
    – JavaScript負責描述網頁如何與使用者互動。

量化通是個致力於全民量化金融教育的社群,我們希望透過由淺入深的內容,帶領大家以正確觀念來實踐自動化的金融投資研究分析。內容涵蓋傳統研究分析方法、量化分析、選股、爬蟲、API 串接、回測、以及下單等跨領域多元知識,由各領域專家為大家提供最精闢的內容。

如果覺得我們的文章還不錯,別忘了掃 QR Code 或點擊下方連結,按讚並追蹤量化通的粉專,我們將努力為您奉上每篇精選文章。

◎量化通FB專頁:https://www.facebook.com/QuantPass
◎量化通網站:https://www.quantpass.org
◎學習更多點這裡 → https://lihi1.cc/NVULo