从网页自动下载文件

时间:2015-11-13 00:47:13

标签: windows python-2.7 selenium download automation

我正在寻找一种从网站自动下载文件的方法。

目前这个过程实际上是手动且沉重的。 我进入网页,输入我的通行证并登录。 它打开一个弹出窗口,我必须单击下载按钮来保存.zip文件。

您对如何自动执行此任务有任何建议吗?

我在Windows 7上,我可以主要使用MS dos batch或python。但我对其他想法持开放态度。

2 个答案:

答案 0 :(得分:2)

您可以使用selenium web驱动程序自动下载。您可以在java中使用以下代码段来获取浏览器下载首选项。

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.manager.showWhenStarting", false);
profile.setPreference("browser.download.dir", "C:\\downloads");
profile.setPreference("browser.helperApps.neverAsk.openFile","text/csv,application/x-msexcel,application/excel,application/x-excel,application/vnd.ms-excel,text/html,text/plain,application/msword,application/xml");

弹出窗口时使用此类处理弹出窗口。

Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_DOWN); 
robot.keyRelease(KeyEvent.VK_DOWN);
robot.keyPress(KeyEvent.VK_ENTER); 
robot.keyRelease(KeyEvent.VK_ENTER);

答案 1 :(得分:0)

您想要查看请求(获取html和文件),Beautifulsoup(解析HTML并找到链接)

请求已内置身份验证:http://docs.python-requests.org/en/latest/ Beautifulsoup很容易使用:http://www.crummy.com/software/BeautifulSoup/bs4/doc/

伪代码:使用请求下载网站html和auth。通过解析来浏览链接。如果链接符合条件 - >保存在列表中,否则继续。当所有链接都被废弃后,请浏览它们并使用请求下载文件(req = requests.get(' url_to_file_here',auth = {'用户名','密码& #39;}),如果[200]中的req.status_code,file = req.text

如果您可以发布您要下载的网站的链接,也许我们可以做更多。