提问人:Tanmayee Sathe 提问时间:3/15/2019 更新时间:3/15/2019 访问量:283
Python Selenium Webdriver:无法使用“textContent”获取所有隐藏元素的数据
Python Selenium Webdriver: Unable to fetch data for all hidden elements using "textContent"
问:
我想从 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']")
感谢您的帮助。
答:
这些 div 在箭头单击时动态加载。
- 您应该提取可见项目列表
- 然后单击箭头按钮并等待列表替换或加载
- 提取新列表
评论