如何用 Python 批量获取 onClick 弹窗的文件

在用 python 爬取网站文档的过程中遇到了问题,目标文件没有链接,而是一个 onclick 弹窗,点击后出来一个另存对话框,需要输入文件名,然后点击保存完成下载。这个 onclick 调用的一个 js 函数,找不到 url 。网上查了一下可以通过 selenium 实现自动化操作,但是用这种方法要重复模拟登录,打开页面,处理弹窗,效率很低。我想用 python 批量获取这种文件,请问怎么实现?

相关文章

19 thoughts on “如何用 Python 批量获取 onClick 弹窗的文件

  1. @annielong 是的,直接输出了文件,没有 url,但我对 js 不熟,研究不出来。你能否留个联系方式,我把页面和 js 打包发你,你帮我看看?

  2. @sxq #6
    不是没有,是你不知道怎么获取而已,http 协议不带 request ? server push 么?
    不一定是个 url (get),可能是个 post 或者 xhr,request 总是有的,看你能不能组合出来并模拟发送
    你需要能捕获 request 的工具

  3. @sxq #8
    现在已经比较少搞爬虫了,规避风险,只玩自己需要的东西,而且低频避免触发对方的防护机制
    另外,request 不是看 js 代码就能看出来的,主要手段是抓包

  4. @imn1 我是用 Flidder 抓包的,但 request 里没有,到弹窗这一步就是 js 处理了,而且是调用 win 系统的对话框

  5. @imn1 我看了一眼他似乎是 OA 系统用 IEHelper 这类东西(是 ActiveX 来的吧)去下载的。

  6. @sxq 假定 #16 是对的,那 ActiveX 是走编译的,别想从代码层面研究了
    Fiddler 可能没法设置代理,进程不在浏览器上,代理设置了走不走都另说。
    先 Wireshark 吧。

发表评论

邮箱地址不会被公开。 必填项已用*标注