Text 使用Selenium将文件保存到具有特定名称的特定位置
我正在尝试将vcard下载到桌面上的特定位置,并使用特定的文件名(由我定义) 我有代码可以下载文件到我的桌面Text 使用Selenium将文件保存到具有特定名称的特定位置,text,selenium,Text,Selenium,我正在尝试将vcard下载到桌面上的特定位置,并使用特定的文件名(由我定义) 我有代码可以下载文件到我的桌面 url = "http://www.kirkland.com/vcard.cfm?itemid=10485&editstatus=0" fp = webdriver.FirefoxProfile() fp.set_preference("browser.download.folderList",2) fp.set_preference("browser.download.mana
url = "http://www.kirkland.com/vcard.cfm?itemid=10485&editstatus=0"
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", "text/x-vcard")
browser = webdriver.Firefox(firefox_profile=fp)
browser.get(url)
注意,上面的URL是vcard的链接
这是保存到代码本身所在的同一目录,并使用由我下载的站点生成的文件名
我想指定文件所在的目录和文件名
具体来说,我想将该文件命名为something.txt
另外请注意,我意识到有更简单的方法(使用urllib或urllib2)。我需要这样做(如果可能的话)b/c一些链接是javascript,这需要我使用Selenium。我以上面的URL为例来简化这种情况。如有必要,我可以提供其他示例/代码来显示更复杂的情况
最后,非常感谢你对我的帮助,我相信我会得到这个职位,并为所有的帮助,你为我提供了去年。如果不是为了这个社区,我不知道我怎么会学到去年学到的所有东西。我有有效的代码。与其说它是一个解决方案,不如说它是一种黑客行为,但它是:
# SET FIREFOX PROFILE
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", "text/x-vcard")
#OPEN URL
browser = webdriver.Firefox(firefox_profile=fp)
browser.get(url)
#FIND MOST RECENT FILE IN (YOUR) DIR AND RENAME IT
os.chdir("DIR-STRING")
files = filter(os.path.isfile, os.listdir("DIR-STRING"))
files = [os.path.join("DIR-STRING", f) for f in files]
files.sort(key=lambda x: os.path.getmtime(x))
newest_file = files[-1]
os.rename(newest_file, "NEW-FILE-NAME"+"EXTENSION")
#GET THE STRING, AND DELETE THE FILE
f = open("DIR-STRING"+"NEW-FILE-NAME"+"EXTENSION", "r")
string = f.read()
#DO WHATEVER YOU WANT WITH THE STRING/TEXT FROM THE DOWNLOAD
f.close()
os.remove("DIR-STRING"+"NEW-FILE-NAME"+"EXTENSION")
DIR-STRING是文件保存目录的路径
NEW-FILE-NAME是所需文件的名称
扩展名是.txt等