在不打开浏览器的情况下使用xpath获取href

时间:2018-02-25 09:55:38

标签: java selenium xpath href selenium-chromedriver

我有一个要求,我必须从不同的网页下载大约900个文件。

我有网页的url和要下载的每个文档的xpath。

目前我正在做的是从数据库中读取url和xpath,打开浏览器(Chrome)并使用xpath查找链接然后下载文档。

问题是,为了下载所有文件,必须打开铬约100次,这会导致性能问题。

那么有没有办法下载文件而无需打开浏览器并使用xpath(就像我可以在不打开浏览器的情况下使用Xpath获取href 然后使用Apache http客户端下载文档)?

注意 - 我正在使用Selenium,我不想直接使用href来下载文件

1 个答案:

答案 0 :(得分:0)

你可以检查phantomJS;

首先从http://phantomjs.org/download.html下载相应的版本,并使用code.py

粘贴到同一文件夹中

这是我https://www.tripadvisor.com.tr/

分页代码中的一个示例
from selenium import webdriver
url = "https://www.tripadvisor.com.tr/Restaurants-g293974-Istanbul.html"
executable_path1 = './phantomjs'
mekan_linkler = []
div_mekanlar1 = driver.find_elements_by_xpath("//*[@href]")
for i in div_mekanlar1:
     x = i.get_attribute('href')
     y = 'http'+x[5:]
     mekan_linkler.append(y)
nextpage = driver.find_element_by_xpath("//*[@id='EATERY_LIST_CONTENTS']/div[3]/div//a[contains(.,'Sonraki')]")
nextpage.click()

有关详情,请查看http://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.phantomjs.webdriver