Re: [問題] 爬取網站的excel檔案

作者: yshihyu (yshihyu)   2019-04-04 15:57:04
※ 引述《jn8029 (魯)》之銘言:
: ※ 引述《yshihyu (yshihyu)》之銘言:
: : https://gist.github.com/shihyu/cafbf8feeb1dbb821084504fcd2c544b // 目前程
式?
: : 我想爬取 http://mopsfin.twse.com.tw/ 網站的excel 文件
: : 目前是從 requests.post 出來結果不是chrome分析的那個頁面
: : 想請問一下可能原因是?
: : 我看chrome 分析會有 jsessionid ? 是要產生這個才可以嘛?
: : Request URL:
: : http://mopsfin.twse.com.tw/compare/data;jsessionid=948EF4B129CCA4E8F4FA1A8
99
: : 還有我看點選excel 下載好像是javascript 功能有辦法透過直接下載嘛?
: : 還是說javascript 必須要用 selenium?
: : 謝謝
: 剛試了一下 可以直接下載
: jsessionid你可以先get首頁之後抓
: 他藏這
: <link rel="icon" type="image/png" href="/resources/images/favicon-32x32.png;
: jsessionid=F353143C92325BE0902E08030FE14F71" sizes="32x32">
: 然後下載excel的url是/export/data 不是compare/data
: 你可以用chrome的developer tool看一下你按下載excel之後他的payload有啥
: 把payload放對 url放/export/data 然後jsessionid放進去
: 就可以了 不用selenium
_____________________________________________________________________________
https://gist.github.com/shihyu/9c62fa9637e336537d3f306486d65109
我先用get 取得 jsessionid, 網址最後在串接 jsessionid
url = 'http://mopsfin.twse.com.tw/export/data;jsessionid=' + jsessionid
res = requests.post(url, headers=headers, verify=False, data = payload)
fp = open("test.xlsx", "wb")
fp.write(res.content)
fp.close()
產生的 test.xlsx 無法打開, 請問可能是什麼原因?
謝謝
作者: HenryLiKing (HenryLiKing)   2019-04-04 16:05:00
.......
作者: be00148 (ThirtyCentimeter)   2019-04-04 19:02:00
.....
作者: HenryLiKing (HenryLiKing)   2019-04-04 19:39:00
你的問題換了欸 剛剛是請問我該怎麼繼續做(?)
作者: yshihyu (yshihyu)   2019-04-04 22:42:00
我大概知道原因了, 是我payload 有些key 是多個所以必須把key : ['value1', 'value2'] 改這樣

Links booklink

Contact Us: admin [ a t ] ucptt.com