使用Selenium进行Web刮擦:不知道文本来自哪里



我正在使用Selenium和Python抓取一个网站。我想从特定的页面中提取特定的文本。我成功地导航到了页面,但当我尝试以下任何操作时,selenium总是返回一个空列表:

driver.find_elements_by_id()
driver.find_elements_by_class()
driver.find_elements_by_class_name()

以及许多其他方法(以及它们的单数版本(。我还怀疑这是一个数据加载问题,并添加了一个隐含的等待,这仍然会导致一个空列表。

当我检查元素时,这是HTML中的:

<textarea style="width: 658px; height: 128px; overflow: auto;" autocomplete="off" id="ContentPH_description" name="ContentPH_description" role="textbox" aria-readonly="true" aria-required="false" aria-multiline="true" class="x-form-textarea x-form-field vms-viewmode-view-set" readonly="" aria-labelledby="ContentPH_description_label" title="" aria-invalid="false" maxlength="10000" oldindex="0" tabindex="-1"></textarea>

我还试着在上面查找该标签的父标签,得到了相同的结果。

帮助。我想检索<textarea>中的文本。

你不能只使用这些方法而不将它们指向某个东西,我将在这个方法上使用id按Id 使用查找元素

description =  driver.find_element_by_id("ContentPH_description" )

如果你使用find元素,你需要像一样索引列表

description =  driver.find_elements_by_id("ContentPH_description" )[0]

相关内容

最新更新