我正在使用mechanize从网页自动下载一些pdf文档。当页面上有pdf图标时,我可以这样做以获取文件:
b.find_link(text="PDF download")
req = b.click_link(text="PDF download")
b.open(req)
然后我将它写入一个新文件。
但是,对于我需要的一些文档,页面上没有直接的“PDF下载”链接。相反,我必须单击“提交”按钮为文档发出“交付请求”:单击此按钮后,下载开始发生,同时我被带到另一个页面,其中显示“正在进行交付请求”,然后,下载已完成,“您的送货请求已完成”。
我尝试使用mechanize单击提交按钮,然后通过执行以下操作保存下载的文件:
b.select_form(nr=0)
b.submit()
downloaded_file = b.response().read()
但是这会存储我重定向到的页面的html,而不是下载的文件。
点击“提交”后如何获取下载的文件?
答案 0 :(得分:0)
对于有类似问题的任何人,我找到了一个解决方法:mechanize模拟一个没有JavaScript的浏览器,所以我也在我的浏览器上关闭了,然后当我进入下载页面时,我可以看到一个链接说'如果下载尚未开始,请点击此处下载'。然后我可以通过机械化找到该链接并以正常方式跟踪它 - 并将响应写入新文件。