实际上,我正在处理一些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()
1条答案
按热度按时间iibxawm41#
您需要将行
driver = webdriver.Chrome()
放入循环中。这就是真正打开Chrome的那一行。因此,在循环的末尾,您可以执行driver.quit()
。这将关闭浏览器。在每个循环的开始,你需要再次打开它。因此,在循环内将driver = webdriver.Chrome()
放在driver.get(full_url)
之前。