看板 Python 關於我們 聯絡資訊
※ 引述《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