一般来说,网站在登录之后的一段时间内,不关闭浏览器,cookie是缓存状态,所以利用这个特性,先用selenium模拟用户登录获取动态cookie,再用requests是直接访问网站的下载链接来实现需要账号密码的文件下载。
获得 cookie信息
这里使用PhantomJS作为浏览器驱动。
需要注意的是,在通过selenium模拟用户登录时,需要设置userAgent,不然后面的requests的headers中只有cookie 也是没有用的。
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = ("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:25.0) Gecko/20100101 Firefox/25.0")
driver = webdriver.PhantomJS(executable_path = r".\phantomjs.exe", desired_capabilities=dcap)
selenium.元素定位(find_element_by)
# 定位登录页面用户名和密码元素并模拟填