我试图在无头环境下从http://www.oracle.com/technetwork/server-storage/developerstudio/downloads/index.html下载文件。我有一个帐户(他们是免费的),但该网站确实不容易,显然它使用了JavaScript形式/重定向链。在Firefox中,我可以使用元素检查器,在下载开始时将文件的url复制为cURL,并将其用于无头机器中以下载文件,但到目前为止,我只有在无头机器中获取文件的所有尝试都有失败。无头javascript下载与硒
我已经设法获得与登录:
#!/usr/bin/env python3
username="<my username>"
password="<my password>"
import requests
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
caps = DesiredCapabilities.PHANTOMJS
caps["phantomjs.page.settings.userAgent"] = "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0"
driver = webdriver.PhantomJS("/usr/local/bin/phantomjs")
driver.set_window_size(1120, 550)
driver.get("http://www.oracle.com/technetwork/server-storage/developerstudio/downloads/index.html")
print("loaded")
driver.find_element_by_name("agreement").click()
print("clicked agreement")
driver.find_element_by_partial_link_text("RPM installer").click()
print("clicked link")
driver.find_element_by_id("sso_username").send_keys(username)
driver.find_element_by_id("ssopassword").send_keys(password)
driver.find_element_by_xpath("//input[contains(@title,'Please click here to sign in')]").click()
print("submitted")
print(driver.get_cookies())
print(driver.current_url)
print(driver.page_source)
driver.quit()
我怀疑的登录工作,因为在饼干我看到我的用户名相关的一些数据,但在Firefox 1.5.1下载表单结果在3-4次重定向之后开始,而在这里我什么也没得到,并且page_source
和current_url
仍然属于登录页面。
也许该网站正在积极阻止这种用途,或者我做错了什么。任何想法如何实际下载文件?
看到这个问题。 https://bugs.chromium.org/p/chromium/issues/detail?id=696481。我认为该功能尚未在chromedriver中提供 –
@TarunLalwani硒+幻像是否在引擎盖下使用铬? – Jellby
不,但是phantomjs现在也没有被维护。所以使用它非常小心。如果它有效,那么它的好,如果没有的话,再想想其他的东西 –