我是Selenium的新手,我正试图刮掉YouTube,但我遇到了一个奇怪的问题。我试图抓取以下HTML:
这是我的代码:
a = w.find_element_by_xpath("//a[@class='yt-simple-endpoint style-scope ytd-video-renderer']")
当我在交互式shell中执行此操作时,它工作正常但是当我在保存后重新运行脚本时,它会显示一个错误,指出无法找到该元素。
答案 0 :(得分:0)
似乎这是一个纯粹的同步问题。我们需要诱导WebDriverWait
,即ExplicitWait
将驱动程序实例与浏览器实例同步,如下所示:
a = WebDriverWait(driver, 10).until(lambda x: x.find_element_by_xpath("//a[@class='yt-simple-endpoint style-scope ytd-video-renderer' and contains(@title,'Calvin Harris - Summer')]"))