close

安安大家好,

[必須先聲明一下,小弟是HR背景,太過專業或是說法需要調整的地方,麻煩再告知,純粹分享「用起來還可以」的方法~]

朋友提到說,享用VBA抓資料,但是看到網頁顯示,網址卻不是這麼一回事

好ㄅ,那怎樣才能讓電腦抓到正確網頁?


我使用的方法是用google chrome瀏覽器,到了目標頁面時,

先假設  http://mops.twse.com.tw/mops/web/t05st22_q1  這個

按下F12,然後如下圖

直接點選Network,看到正常的一片空白,

這個頁面會看到瀏覽器讀取資料的過程,所以我們利用他的紀錄,

來找尋他是如何調出這些資料,

接下來,我們就可以正常執行我們的步驟

按下執行後,發現網頁一樣沒改變,

但是右邊框框多了一些東西,

也就是說,再按下去的同時,

網頁默默的在後面執行了一些東西

可以發現他是用[POST]方式讀取網頁表單(分為GET與POST兩種,有興趣可以自行研究)

將下拉bar拖曳到最下面,可以看到他提取的相關值為紅圈圈中所示

嗯?我看到股票代號了?

是的,但先不用急,我們先把他轉換成網頁提取的語言,

按下[view source],就變成以下...亂碼?

[encodeURIComponent=1&step=1&firstin=1&off=1&keyword4=&code1=&TYPEK2=&checkbtn=&queryName=co_id&t05st29_c_ifrs=N&t05st30_c_ifrs=N&inpuType=co_id&TYPEK=all&isnew=true&co_id=3105&year=]

是的,這就是我們這次要找的東西

這一串東西,是跟瀏覽器說,我們要找的資料有這些,

本次最重要的就是股票代號

 

網址表單資料中間用?和串接起來,如下

http://mops.twse.com.tw/mops/web/t05st22_q1?encodeURIComponent=1&step=1&firstin=1&off=1&keyword4=&code1=&TYPEK2=&checkbtn=&queryName=co_id&t05st29_c_ifrs=N&t05st30_c_ifrs=N&inpuType=co_id&TYPEK=all&isnew=true&co_id=3105&year=

這串網址,就會直接跟瀏覽器說,

我要打開,然後執行這些東西

於是效果就會變成直接打開就是我要的東西囉

當然要抓取其他支股票,直接替換代號即可

http://mops.twse.com.tw/mops/web/t05st22_q1?encodeURIComponent=1&step=1&firstin=1&off=1&keyword4=&code1=&TYPEK2=&checkbtn=&queryName=co_id&t05st29_c_ifrs=N&t05st30_c_ifrs=N&inpuType=co_id&TYPEK=all&isnew=true&co_id=2330&year=

是不是很神奇呢?真的很神奇呢

arrow
arrow
    文章標籤
    excel vba
    全站熱搜
    創作者介紹
    創作者 BARCODE 的頭像
    BARCODE

    學雜FAB

    BARCODE 發表在 痞客邦 留言(1) 人氣()