作者ntumath (math mad)
看板Python
標題Re: [問題] 股票交易爬蟲問題
時間Wed May 24 03:18:51 2017
※ 引述《a00880022 (QQ)》之銘言:
: 大家好
: 小弟最近接觸爬蟲
: 想要從 台灣證券交易所
: http://www.twse.com.tw/ch/trading/exchange/STOCK_DAY/STOCK_DAYMAIN.php
: 爬取過去每天的收盤價
: 但由於不熟悉網頁架構
: 在爬取的時候不知道怎麼從python輸入input給網頁然後抓取資料
: 附上目前程式碼
: ------------------------------------
: import requests
: from bs4 import BeautifulSoup
: payload={}
: date=('download=&query_year=2017&query_month=5&CO_ID=1101&query-button=%E6%9F%A5%E8%A9%A2')
: res=requests.post('http://www.twse.com.tw/ch/trading/exchange/STOCK_DAY/STOCK_DAYMAIN.php',data=date)
: print (res.text)
: ------------------------------------
: 我是利用一個date值存入年月以及股票編號想要回傳給網頁
: 但print出來的值好像接收不到(無法讀取table)
: 想要請大神們就救我這個新手
: google了一整天還是找不到個結果.....
本來neil987大大已經回答你的問題了,不過就在昨天下午五點半
證交所又更新他的網站啦orz... 所以在這邊提供完整可行的code
import requests
params = {"date":"20170524",
"stockNo":"1101"}
res = requests.post('
http://www.twse.com.tw/exchangeReport/STOCK_DAY',
params=params)
eval(res.text)
這樣傳回的就是跟網站求的table囉 ^^
*注意:因為五月還沒結束,所以"date"要打當天的日子,結束之後都會改成XX01。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.253.33
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1495567133.A.FCF.html
※ 編輯: ntumath (140.112.253.33), 05/24/2017 03:20:44
推 coyoteY: 05/24 07:14
推 coeric: 剛剛我爬了 下...不是用get就可以了唷? 05/24 11:07
→ coeric: 應該說 我撈到的是json格式...get就可處理了 05/24 11:07
啊~應該不是說是json就可以用get處理,主要還是看你跟server是透過哪種方法傳,
只是目前大部份的server都應該會接受post,所以這邊會沒差
推 a00880022: 感謝感謝 不過這次我也是用get抓到 不知道原來還可以這 05/24 11:55
→ a00880022: 樣寫 05/24 11:55
→ a00880022: 又多學了一招XDD 05/24 11:55
→ a00880022: 想問一下最後面加的params跟data的差別在哪裏? 05/24 11:56
params就是把參數變成string加在url後面:?後面全部都是你的參數,通常get都用這個
data是把資料裝在body(詳細的我不知道):也會像get去要同一個url,但是你print出來
會完全看不到你的參數。通常post用這個。
我想詳細的解釋可能要學HTTP之後才會了解,你有興趣可以去看一下
推 chababa: 謝謝大大分享 05/24 16:30
推 a856479: 我是用get直接抓csv檔下來 05/25 01:12
※ 編輯: ntumath (140.112.253.33), 05/25/2017 01:30:58
推 coeric: 應該是我表達不當...XDDD 05/25 08:03
→ coeric: get跟json是兩件事沒錯.... 05/25 08:03
→ coeric: 因為我看到網址有「exchangeReport」 覺得是匯出csv檔 05/25 08:04
→ coeric: 然後又去回歸回應主題(post),用get就可以了 05/25 08:05