作者yshihyu (yshihyu)
看板Python
标题Re: [问题] 爬取网站的excel档案
时间Thu Apr 4 15:57:04 2019
※ 引述《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://webptt.com/cn.aspx?n=bbs/Python/M.1554364628.A.E9F.html
1F:→ HenryLiKing: .......04/04 16:05
※ 编辑: yshihyu (106.104.121.78), 04/04/2019 16:26:53
2F:→ be00148: .....04/04 19:02
3F:→ HenryLiKing: 你的问题换了欸 刚刚是请问我该怎麽继续做(?)04/04 19:39
推 yshihyu
: 因为我後来把 res.content写成档案输出 04/04 19:59
→ yshihyu
: 成 xlsx,但是内容无法开启 04/04 19:59
※ 编辑: yshihyu (111.71.10.52), 04/04/2019 20:01:55
4F:→ yshihyu: 我大概知道原因了, 是我payload 有些key 是多个 04/04 22:42
5F:→ yshihyu: 所以必须把key : ['value1', 'value2'] 改这样 04/04 22:43