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
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
2条答案
按热度按时间pb3skfrl1#
通过导航到另一个页面,Selify Web元素(它们实际上是对物理Web元素的引用)收集的所有内容都不再有效,因为当您再次打开该网页时,它将重新构建。要使您的代码正常工作,您需要每次都再次收集链接列表。这应该是可行的:
还要确保该页面上的所有
a
元素都是相关链接。因为这可能是不正确的omqzjyyz2#
代码中的逻辑应该可以工作,但是您可能希望在某些操作之间添加休眠,这在抓取时会有所不同。
然后在重要的地方添加
time.sleep(seconds)
。