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



实际上我正在处理一些URL。URL存储在我的数据库中,同时一个接一个地挑选并查找它的资源,并将这些资源存储在数据库中。如果我不使用driver.quit((,它从一开始就为每个URL存储信息,所以我决定使用driver.quit现在它只适用于第一个URL,不适用于第二个URL等等。但目前我只是打印数据,看看它是否按我的意愿工作。已经检查了如何使用Selenium和Python循环浏览URL列表

以下是部分代码::

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()

您需要将行driver = webdriver.Chrome()放入循环中。这是一条真正打开chrome的线。因此,在循环结束时,您执行driver.quit()。这将关闭浏览器。在每个循环的开始,你需要再次打开它。因此,在循环中,将driver = webdriver.Chrome()放在driver.get(full_url)之前。

最新更新