def download_eclipse(): eclipse_download_page_url = "https://www.eclipse.org/downloads/" print "Hitting Eclipse download page: " + eclipse_download_page_url # Find the appropriate download current_os = platform.system().lower() if "win" in current_os: if setup_core.is_64bit(): xpath = '//*[@id="page-download"]/div/div[2]/div[1]/div[2]/div/div[2]/ul/li[3]/a' else: xpath = '//*[@id="page-download"]/div/div[2]/div[1]/div[2]/div/div[2]/ul/li[2]/a' elif "linux" in current_os: if setup_core.is_64bit(): xpath = '//*[@id="page-download"]/div/div[2]/div[1]/div[2]/div/div[3]/ul/li[3]/a' else: xpath = '//*[@id="page-download"]/div/div[2]/div[1]/div[2]/div/div[3]/ul/li[2]/a' elif "osx" in current_os: xpath = '//*[@id="page-download"]/div/div[2]/div[1]/div[2]/div/div[1]/ul/li[2]/a' xpath += '/@href' eclipse_page_tree = html.fromstring(requests.get(eclipse_download_page_url).content) secondary_page = eclipse_download_page_url + eclipse_page_tree.xpath(xpath)[0] print "".join(["Following to: ", secondary_page]) eclipse_page_tree = html.fromstring(requests.get(secondary_page).content) # We have to traverse yet another page before being presented with a download url secondary_page = eclipse_page_tree.xpath('//*[@id="novaContent"]/div[1]/div/div[1]/div[1]/p[1]/a/@href')[0] eclipse_page_tree = html.fromstring(requests.get(eclipse_download_page_url + secondary_page).content) href_ = eclipse_page_tree.xpath('//*[@id="novaContent"]/div/div/div/span/p/a/@href')[0] eclipse_zip_file = setup_core.download_file(href_) return eclipse_zip_file
def download_plugin(): plugin_download_page_url = "http://jmeter-plugins.org" print "Hitting JMeter Plugin download page: " + plugin_download_page_url plugin_page_tree = html.fromstring(requests.get(plugin_download_page_url).content) plugin_download_link = "".join( [plugin_download_page_url, plugin_page_tree.xpath('/html/body/div/div/div[1]/a[1]/@href')[0]]) zip_file = setup_core.download_file(plugin_download_link) print zip_file + " was downloaded" return zip_file
def download_jmeter(): jmeter_download_page_url = "http://jmeter.apache.org/download_jmeter.cgi" print "Hitting JMeter download page: " + jmeter_download_page_url jmeter_page_tree = html.fromstring(requests.get(jmeter_download_page_url).content) jmeter_page_links = jmeter_page_tree.xpath('//a/@href') jmeter_tar_file_url = filter(lambda x: x.endswith(".tgz") and not "src" in x, jmeter_page_links)[0] jmeter_tar_md5_url = filter(lambda x: x.endswith(".tgz.md5") and not "src" in x, jmeter_page_links)[0] jmeter_md5_string = requests.get(jmeter_tar_md5_url).text.split(" ")[0] tar_file = setup_core.download_file(jmeter_tar_file_url, jmeter_md5_string) print tar_file + " was downloaded with correct MD5" return tar_file