Re: [問題] 股票交易爬蟲問題

看板Python作者 (math mad)時間8年前 (2017/05/24 03:18), 8年前編輯推噓6(607)
留言13則, 5人參與, 最新討論串3/3 (看更多)
※ 引述《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

05/24 07:14, , 1F
05/24 07:14, 1F

05/24 11:07, , 2F
剛剛我爬了 下...不是用get就可以了唷?
05/24 11:07, 2F

05/24 11:07, , 3F
應該說 我撈到的是json格式...get就可處理了
05/24 11:07, 3F
啊~應該不是說是json就可以用get處理,主要還是看你跟server是透過哪種方法傳, 只是目前大部份的server都應該會接受post,所以這邊會沒差

05/24 11:55, , 4F
感謝感謝 不過這次我也是用get抓到 不知道原來還可以這
05/24 11:55, 4F

05/24 11:55, , 5F
樣寫
05/24 11:55, 5F

05/24 11:55, , 6F
又多學了一招XDD
05/24 11:55, 6F

05/24 11:56, , 7F
想問一下最後面加的params跟data的差別在哪裏?
05/24 11:56, 7F
params就是把參數變成string加在url後面:?後面全部都是你的參數,通常get都用這個 data是把資料裝在body(詳細的我不知道):也會像get去要同一個url,但是你print出來 會完全看不到你的參數。通常post用這個。 我想詳細的解釋可能要學HTTP之後才會了解,你有興趣可以去看一下

05/24 16:30, , 8F
謝謝大大分享
05/24 16:30, 8F

05/25 01:12, , 9F
我是用get直接抓csv檔下來
05/25 01:12, 9F
※ 編輯: ntumath (140.112.253.33), 05/25/2017 01:30:58

05/25 08:03, , 10F
應該是我表達不當...XDDD
05/25 08:03, 10F

05/25 08:03, , 11F
get跟json是兩件事沒錯....
05/25 08:03, 11F

05/25 08:04, , 12F
因為我看到網址有「exchangeReport」 覺得是匯出csv檔
05/25 08:04, 12F

05/25 08:05, , 13F
然後又去回歸回應主題(post),用get就可以了
05/25 08:05, 13F
文章代碼(AID): #1P98iT_F (Python)
文章代碼(AID): #1P98iT_F (Python)