如何使用硒下载文件?
Posted
技术标签:
【中文标题】如何使用硒下载文件?【英文标题】:How to download file using selenium? 【发布时间】:2013-09-28 01:55:06 【问题描述】:我正在尝试获取下载链接并下载文件。
我有一个包含以下链接的日志文件:
http://www.downloadcrew.com/article/18631-aida64
http://www.downloadcrew.com/article/4475-sumo
http://www.downloadcrew.com/article/2174-iolo_system_mechanic_professional
...
...
我有这样的代码:
import urllib, time
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
f = open("dcrewtest.txt")
for line in f.readlines():
try:
driver.find_element_by_xpath("//div/div[2]/div[2]/div[2]/div[3]/div/a/img").click()
time.sleep(8)
except:
pass
url = line.encode
pageurl = urllib.urlopen(url).read()
soup = BeautifulSoup(pageurl)
for a in soup.select("h1#articleTitle"):
print a.contents[0].strip()
for b in soup.findAll("th"):
if b.text == "Date Updated:":
print b.parent.td.text
elif b.text == "Developer:":
print c.parent.td.text
到目前为止,我不知道如何获取下载链接并下载它。 是否可以使用 selenium 下载文件?
【问题讨论】:
downloading file using selenium的可能重复 【参考方案1】:根据documentation,你应该配置FirefoxProfile
自动下载指定内容类型的文件。下面是一个使用您在 txt 文件中的第一个 URL 的示例,该文件将 exe
文件保存在当前目录中:
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/x-msdos-program")
driver = webdriver.Firefox(firefox_profile=fp)
driver.get("http://www.downloadcrew.com/article/18631-aida64")
driver.find_element_by_xpath("//div[@class='downloadLink']/a/img").click()
请注意,我还简化了 xpath。
【讨论】:
它工作正常.. 我只是设法从 txt 文件中读取所有链接.. @alecxe 我试过了,但是为什么所有文件都存储到 /tmp/mozilla_[user]0/ 文件以.part
结尾以上是关于如何使用硒下载文件?的主要内容,如果未能解决你的问题,请参考以下文章