selenium 我可以在一个脚本中使用不同的URL运行driver.get()吗?

uqjltbpv  于 2023-01-30  发布在  其他
关注(0)|答案(1)|浏览(142)

我对编码和网页抓取很陌生。我注意到的一件事是当我打开一个带有url_1的浏览器,抓取其他类别的URL,然后尝试用相同的driver.get(_new_url)打开它们时,没有任何React,浏览器关闭。然而,如果我将webdriver.chrome(PATH)赋给一个新的变量名,例如new_driver,我可以继续使用new_driver。
任何人都可以解释为什么会发生这种情况,以及这一点是如何工作的?我是不是应该每次为每个新链接创建一个新的驱动程序对象?
这就是我基本上让代码工作的方法,但是我想知道为什么每次都需要创建一个新的驱动程序对象?

main_page = 'https://www.*******.com/gaming'
PATH = 'C:\Program Files (x86)\chromedriver.exe'
driver = webdriver.Chrome(PATH)

driver.get(main_page)

sub_categories = driver.find_elements(By.CLASS_NAME, 'list-nav- item.context-nav-link')

links = []

for el in sub_categories:
    links.append(el.get_attribute('href'))

new_driver = webdriver.Chrome(PATH)
new_driver.get(links[0]) #going to 1st link obtained
blmhpbnm

blmhpbnm1#

由于您已经收集了列表 linkshref 属性的值,因此可以按如下所示将其全部打开:

main_page = 'https://www.********.com/gaming'
PATH = 'C:\Program Files (x86)\chromedriver.exe'
driver = webdriver.Chrome(PATH)
driver.get(main_page)
sub_categories = driver.find_elements(By.CLASS_NAME, 'list-nav-item.context-nav-link')
links = []
for el in sub_categories:
    links.append(el.get_attribute('href'))

for link in links:
    driver.execute_script("window.open('" + link +"');")

相关问题