如何用 selenium 访问多个链接

mdfafbf1  于 2022-11-10  发布在  其他
关注(0)|答案(2)|浏览(192)

我正在尝试从一个页面访问多个链接,然后返回到同一页面。

links = driver.find_elements(By.CSS_SELECTOR,'a')

for link in links:
     link.click() # visit page
     # scrape page 
     driver.back() # get back to previous page, and click the next link in next iteration

代码说明了一切

pb3skfrl

pb3skfrl1#

通过导航到另一个页面,Selify Web元素(它们实际上是对物理Web元素的引用)收集的所有内容都不再有效,因为当您再次打开该网页时,它将重新构建。要使您的代码正常工作,您需要每次都再次收集链接列表。这应该是可行的:

import time
links = driver.find_elements(By.CSS_SELECTOR,'a')

for i in range(len(links)):
    links[i].click() # visit page
    # scrape page 
    driver.back() # get back to previous page, and click the next link in next iteration 
    time.sleep(1) # add a delay to make the main page loaded
    links = driver.find_elements(By.CSS_SELECTOR,'a') # collect the links again on the main page

还要确保该页面上的所有a元素都是相关链接。因为这可能是不正确的

omqzjyyz

omqzjyyz2#

代码中的逻辑应该可以工作,但是您可能希望在某些操作之间添加休眠,这在抓取时会有所不同。

import time

然后在重要的地方添加time.sleep(seconds)

相关问题