selenium 为什么Selify在退出前一个url后没有启动下一个url

gk7wooem  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(167)

实际上,我正在处理一些URL。URL存储在我的数据库中,同时逐个挑选并查找资源,并将这些资源存储在数据库中。如果我在没有使用driver.quit()的情况下这样做,它会以某种方式为每个URL存储信息,所以我决定使用driver.Quit,现在它只对第一个URL起作用,对第二个URL不起作用,以此类推。但目前我只是打印数据,看看它是不是按照我的要求工作。已检查How to loop through a list of urls using Selenium and Python
以下是代码的一部分:

def select_url_test():
    http = 0
    https = 0

    driver = webdriver.Chrome()

    db_conn1 = Foreign_Key_table.database_conn()
    db_conn1.execute("SELECT url,id FROM SELECTED_URLS WHERE url_status = 'VALID' AND captcha_status = 'NO' LIMIT 2")
    urls = db_conn1.fetchall()

    for url_aa in urls:
        full_url = 'https://' + url_aa[0]  # url is in form of ('google.com' ,)
        # print(url[0])
        # print(full_url)
        driver.get(full_url)
        time.sleep(2)
        for request in driver.requests:    
            if request.url.startswith('https'):
                https += 1            
                print(request.url)
        driver.quit()
iibxawm4

iibxawm41#

您需要将行driver = webdriver.Chrome()放入循环中。这就是真正打开Chrome的那一行。因此,在循环的末尾,您可以执行driver.quit()。这将关闭浏览器。在每个循环的开始,你需要再次打开它。因此,在循环内将driver = webdriver.Chrome()放在driver.get(full_url)之前。

相关问题