网络抓取的时候会碰到需要从网站下载文件的情况。下面提供两种方法:
1. selenium + firefox + firefoxProfile
核心要点是在firefox中设置相关的下载参数,然后在模拟点击的时候,selenium webdriver会自动保存对应的文档。
貌似文件的自动保存需要使用的webdriver只能是firefox。在网上并没有搜到使用对其他webdriver工具的支持资料。
prof = webdriver.FirefoxProfile();
# 下面几个是核心参数
prof.set_preference("browser.download.folderList", 2) # 2表示自定义文件夹 0表示保存到桌面
prof.set_preference("browser.download.manager.showWhenStarting",False) # 没什么用
prof.set_preference("browser.download.dir","D:\\selenium\\") # 设置默认的保存文件夹
# 设置自动保存的文件类型,如果firefox不能自动保存,一定是文件类型不对
prof.set_preference("browser.helperApps.neverAsk.saveToDisk", 'application/a-gzip,application/x-gzip')
# 其他可选文件类型"application/x-gzip;application/zip,application/x-gtar,text/plain,application/x-compressed,application/octet-stream,application/pdf")