Python Selenium Webdriver:无法使用“textContent”获取所有隐藏元素的数据

Python Selenium Webdriver: Unable to fetch data for all hidden elements using "textContent"

提问人:Tanmayee Sathe 提问时间:3/15/2019 更新时间:3/15/2019 访问量:283

问:

我想从 Netflix 抓取数据以获取以下信息: 1.展会名称 2.季节 3.每季的剧集名称 4.每集的网址 5.每场演出的持续时间。 Selenium 版本:3.141.0 Python 版本:3.6.6,使用 Chrome Webdriver。

该工具能够登录,搜索特定节目,然后单击“剧集”选项卡,如下所示: 节目示例剧集的屏幕截图

HTML 元素 每集的详细信息如下:

div class="slider-item slider-item-0" 
div class="slider-item slider-item-1"
div class="slider-item slider-item-2"
div class="slider-item slider-item-3"
div class="slider-item slider-item-"
div class="slider-item slider-item-"
div class="slider-item slider-item-"
div class="slider-item slider-item-"

在第 4 项之后,其他元素在主屏幕中隐藏

为了找到元素,我使用以下代码driver.find_elements_by_xpath(“//div[@class='episodeTitle']//p[@class ='ellipsized']”)。这给出了每个节目的剧集名称列表。

我知道要找到隐藏元素,我们可以使用 print demo_div.get_attribute('innerHTML') driver.execute_script(“return arguments[0].innerHTML”, demo_div)

print demo_div.get_attribute('textContent') driver.execute_script(“return arguments[0].textContent”, demo_div) 从以下链接: https://yizeng.me/2014/04/08/get-text-from-hidden-elements-using-selenium-webdriver/ 问题:每次错过最后两集或更多集的细节。 我已经使用了上述两种技术来获取隐藏元素,但没有运气 此外,我还使用了 Web 驱动程序隐式和显式等待时间,但仍然有些剧集丢失了。 获取剧集名称的代码片段:

e8= driver.find_elements_by_xpath("//div[@class='episodeTitle']//p[@class ='ellipsized']")

感谢您的帮助。

python html selenium chrome-web-driver

评论

2赞 Nic Laforge 3/15/2019
如果您单击箭头(右侧),然后重复该过程,直到箭头不再存在,该怎么办?
0赞 Tanmayee Sathe 3/23/2019
感谢您的回复。我能够通过单击下一个箭头并使用文本属性来获取所需的数据

答:

0赞 Waqar Nadir 3/15/2019 #1

这些 div 在箭头单击时动态加载。

  1. 您应该提取可见项目列表
  2. 然后单击箭头按钮并等待列表替换或加载
  3. 提取新列表

评论

0赞 Tanmayee Sathe 4/24/2019
感谢您的回复。我能够成功解决问题。