在用 python 爬取网站文档的过程中遇到了问题,目标文件没有链接,而是一个 onclick 弹窗,点击后出来一个另存对话框,需要输入文件名,然后点击保存完成下载。这个 onclick 调用的一个 js 函数,找不到 url 。网上查了一下可以通过 selenium 实现自动化操作,但是用这种方法要重复模拟登录,打开页面,处理弹窗,效率很低。我想用 python 批量获取这种文件,请问怎么实现?
1
baba233 Oct 25, 2020 via Android
selenium 第一次登录保存 cookie,下次请求带上 cookie 直接访问这样?
|
3
annielong Oct 25, 2020
如果是系统对话框的话是直接输出了文件流,还是研究 js 吧,
|
4
sxq OP @annielong 是的,直接输出了文件,没有 url,但我对 js 不熟,研究不出来。你能否留个联系方式,我把页面和 js 打包发你,你帮我看看?
|
5
imn1 Oct 25, 2020
url 是一定有的,浏览器查 request
|
7
imn1 Oct 25, 2020
@sxq #6
不是没有,是你不知道怎么获取而已,http 协议不带 request ? server push 么? 不一定是个 url (get),可能是个 post 或者 xhr,request 总是有的,看你能不能组合出来并模拟发送 你需要能捕获 request 的工具 |
9
imn1 Oct 25, 2020
|
10
sxq OP @imn1 我是用 Flidder 抓包的,但 request 里没有,到弹窗这一步就是 js 处理了,而且是调用 win 系统的对话框
|
11
renmu123 Oct 25, 2020 via Android
你把网站发出来看看,有感兴趣可能顺手就解决了
|
13
fx0719 Oct 26, 2020 via iPhone
我也有个内部网站也是这样,然后看 js,自己网址拼接
|
14
sxq OP |
16
lijialong1313 Oct 26, 2020
@imn1 我看了一眼他似乎是 OA 系统用 IEHelper 这类东西(是 ActiveX 来的吧)去下载的。
|
17
sxq OP @lijialong1313 是的,这个文档应该怎么获取?
|
18
no1xsyzy Oct 26, 2020
|
20
jeeyong Oct 27, 2020
pyv8
|
21
lijialong1313 Oct 29, 2020
@sxq 有一个很暴力的方法,听说过按键精灵吗?
|
22
llsquaer Oct 29, 2020
如果不是效率优先的需求.....实在不行 使用 seleniumIDE 插件 火狐,谷歌都有..在当前使用的浏览器上录制动作....就不用考虑 cookies js 之类的了..因为本来就是你本机浏览器 ...
|