Python 如何让selenium打开一个浏览器并继续使用该浏览器,而不是为每个url/scrape javascript加载新浏览器

Python 如何让selenium打开一个浏览器并继续使用该浏览器,而不是为每个url/scrape javascript加载新浏览器,python,selenium,Python,Selenium,我有下面的代码,我正试图刮一个xls文件,我必须使用硒,因为我可以告诉 网站使用以下代码获取文件: function GetQuote() { $('#lblError').html(''); $('#lblError2').html(''); if ($('#txtTicker') != null && $('#txtTicker').val() != null && $('#txtTicker').val().t

我有下面的代码,我正试图刮一个xls文件,我必须使用硒,因为我可以告诉

网站使用以下代码获取文件:

function GetQuote() {
          $('#lblError').html('');
          $('#lblError2').html('');
    if ($('#txtTicker') != null && $('#txtTicker').val() != null && $('#txtTicker').val().trim() != ''){
        trackGAEventGbl('quote-table-download', $('#txtTicker').val(), 'download');         
        var frm = document.forms[0];
        if (window.location.href.indexOf('?') > -1) {
            frm.action = window.location.pathname;
        }           
        frm.submit();
        return true;
    }
    else {
        alert('Please enter a Stock or Index Symbol.');
        return false;
    }
  }                         
我没有任何运气刮这个不使用硒。然而,我发现代码需要很长时间才能完成,因为我有相当多的公司我遵循。但是,每次我使用下面的代码使用selenium进行清理时,它都会打开和关闭一个新的chrome实例。有什么办法可以加快速度吗

def get_file(ticker, url):
    chrome_driver_path=r"D:\Program Files\chromedriver\84\chromedriver.exe"
    options = webdriver.ChromeOptions()

    options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe"
    driver = webdriver.Chrome(chrome_driver_path, options=options)
    driver.get(url)
    source = driver.page_source

    inputElement = driver.find_element_by_id('txtTicker')
    inputElement.send_keys(ticker)
    inputElement.submit()

    tickers = [line.rstrip() for line in open(r"C:\Python38\Projects\ticker_list.txt", "r")]
for ticker in tickers:

    get_file(ticker)
    if os.path.exists(r'C:\Users\Downloads\quotedata.dat'):

        if os.stat(r'C:\Users\Downloads\quotedata.dat').st_size != 0:
            df = pd.read_csv(r'C:\Users\Downloads\quotedata.dat',
                        header=None, sep=',', engine='python',skiprows=2)
            new_header = df.iloc[0]
            df = df[1:]
            df.columns = new_header

            print(df)
            store_path = r"D:\Data\US\Option Data\{}\{} data.csv".format(ticker,ticker)
            print(store_path)
            df.to_csv(store_path, index = False)


        os.remove(r"C:\Users\Downloads\quotedata.dat")
        count = count + 1
        print("Processed {} / {} Tickers".format(count, len_tickers))

只需在脚本开头定义一次
驱动程序
,然后在
get_file
函数中使用它:

chrome\u driver\u path=r“D:\Program Files\chromedriver\84\chromedriver.exe”
options=webdriver.ChromeOptions()
options.binary\u location=r“C:\Program Files\Google\Chrome\Application\Chrome.exe”
driver=webdriver.Chrome(Chrome\u driver\u路径,options=options)
def get_文件(股票代码、url):
获取驱动程序(url)
...
tickers=[line.rstrip()用于打开的行(r“C:\Python38\Projects\ticker\u list.txt”,“r”)]
对于自动售检票机中的自动售检票机:
获取文件(股票代码)
...

请向您展示完整的代码,您在哪里使用此
获取文件
功能?我编辑了问题我没有包含URL如果您需要,我可以通过pm或其他方式发送