【发布时间】:2020-06-26 17:51:12
【问题描述】:
在标记为重复之前,请考虑我已经浏览了许多相关的堆栈溢出帖子,以及网站和文章。我还没有找到解决办法。
这个问题是这个问题的后续Selenium Webdriver not finding XPATH despite seemingly identical strings。通过更新代码以更优雅的方式工作,我确定问题实际上并非来自 xpath 方法:
for item in feed:
img_div = item.find_element_by_class_name('listing-cover-photo ')
img = WebDriverWait(img_div, 10).until(
EC.visibility_of_element_located((By.TAG_NAME, 'img')))
这适用于前 5 个元素。但在那之后它超时,通过获取 img_div 的内部 html 并打印它,我发现对于超时的元素,而不是我想要的图像,有一个带有“lazyload-placeholder”类的 div。这导致我抓取延迟加载的元素,但我找不到答案。如您所见,我正在使用 WebDriverWait 来尝试给它加载时间,但我也尝试了站点范围的等待调用以及 time.sleep 调用。等待似乎并不能解决问题。我正在寻找处理这些延迟加载图像的最简单方法,最好是在 Selenium 中,但如果有其他库或产品可以与我已经拥有的 Selenium 代码一起使用,那就太好了。任何帮助表示赞赏。
【问题讨论】:
标签: python-3.x selenium web-scraping webdriver lazy-loading