我正在寻找一种从网站自动下载文件的方法。
目前这个过程实际上是手动且沉重的。 我进入网页,输入我的通行证并登录。 它打开一个弹出窗口,我必须单击下载按钮来保存.zip文件。
您对如何自动执行此任务有任何建议吗?
我在Windows 7上,我可以主要使用MS dos batch或python。但我对其他想法持开放态度。
答案 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
如果您可以发布您要下载的网站的链接,也许我们可以做更多。