转:python webdriver API 之下载文件

时间:2021-02-27 03:42:11

webdriver 允许我们设置默认的文件下载路径。也就是说文件会自动下载并且存在设置的那个目录
中。
要想下载文件,首选要先确定你所要下载的文件的类型。要识别自动文件的下载类型可以使用 curl ,
如图3.16:
转:python webdriver API 之下载文件
图 3.16
curl 是利用 URL 语法在命令行方式下工作的开源文件传输工具。
Content-Type ,内容类型,一般是指网页中存在的 Content-Type ,用于定义网络文件的类型和
网页的编码,决定浏览器将以什么形式、什么编码读取这个文件。
另一种方法是使用 requests 模块来查找内容类型。 Requests 是一个 Python 的 HTTP 客户端库,
默认下载的 python 环境包不包含这个类库,需要另外安装。使用方法如下:
import requests
print requests.head(’http://www.python.org’).headers[’content-type’]
一旦确定了内容的类型,就可以用它来设置 Firefox 的默认配置文件,具体实例如下:
#coding=utf-8
import os
from selenium import webdriver
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList",2)
fp.set_preference("browser.download.manager.showWhenStarting",False)
fp.set_preference("browser.download.dir", os.getcwd())
fp.set_preference("browser.helperApps.neverAsk.saveToDisk",
"application/octet-stream")
browser = webdriver.Firefox(firefox_profile=fp)
browser.get("http://pypi.python.org/pypi/selenium")
browser.find_element_by_partial_link_text("selenium-2").click()
browser.download.dir 用于指定你所下载文件的目录。
os.getcwd() 该函数不需要传递参数,用于返回当前的目录。
application/octet-stream 为内容的类型。