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

看板Python作者 (yshihyu)時間5年前 (2019/04/04 15:57), 5年前編輯推噓0(005)
留言5則, 3人參與, 5年前最新討論串3/3 (看更多)
※ 引述《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 無法打開, 請問可能是什麼原因? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.104.121.78 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1554364628.A.E9F.html

04/04 16:05, 5年前 , 1F
.......
04/04 16:05, 1F
※ 編輯: yshihyu (106.104.121.78), 04/04/2019 16:26:53

04/04 19:02, 5年前 , 2F
.....
04/04 19:02, 2F

04/04 19:39, 5年前 , 3F
你的問題換了欸 剛剛是請問我該怎麼繼續做(?)
04/04 19:39, 3F
yshihyu: 因為我後來把 res.content寫成檔案輸出 04/04 19:59 yshihyu: 成 xlsx,但是內容無法開啟 04/04 19:59 ※ 編輯: yshihyu (111.71.10.52), 04/04/2019 20:01:55

04/04 22:42, 5年前 , 4F
我大概知道原因了, 是我payload 有些key 是多個
04/04 22:42, 4F

04/04 22:43, 5年前 , 5F
所以必須把key : ['value1', 'value2'] 改這樣
04/04 22:43, 5F
文章代碼(AID): #1SfRZKwV (Python)
文章代碼(AID): #1SfRZKwV (Python)