仅在硒的特定“ id”内按“类”查找元素

时间:2019-11-08 03:35:57

标签: python python-3.x selenium web-scraping

我对抓取是陌生的,我正在尝试从一个简单的静态网页中抓取数据。 网页以表格形式排列,我只想从id'Table1'(图片中的红色矩形)中获取数据。但是,我无法实现这一目标。

我需要“ LabelColumn”和“ DataColumn”的内容,但仅在“ Table1”中 当我执行find_elements_by_class_name("LabelColumn")driver.find_elements_by_class_name("DataColumn")时,会得到整个页面的'LabelColumn'和'DataColumn'数据,而这并不是我想要的(它会创建不必要的数据并花费更多时间)。 可以提供任何有关该方法的指南吗?我尝试查找xpath,但出现错误,提示物品不存在,我认为我做错了事。

蓝色矩形仅在“表1”中显示几个“ LabelColumn”和“ DataColumn”。在绿色矩形内还有更多这些。我将那些折叠起来以减小图片的尺寸。

enter image description here

更新 尝试过的代码(这仍然给出了整个页面的内容,而不是元素'Table1'的内容

table1 = driver.find_element_by_id("Table1")
labels = table1.find_elements_by_xpath(".//td[@class='LabelColumn']")
contents = table1.find_elements_by_xpath(".//td[@class='DataColumn']")

1 个答案:

答案 0 :(得分:1)

您可以使用下面的xpath。

//table[@id='Table1']//td[@class='LabelColumn']
//table[@id='Table1']//td[@class='DataColumn']

或以下CSS

table[id='Table1'] .LabelColumn
table[id='Table1'] .DataColumn