2024-09-27 00:17:54 发布
网友
我正在使用Selenium提取学生分数。现在我想得到马克的重量(每个分数都有自己的重量),然后用它来计算学生的加权平均数
这是包含所有信息的标签
<span class="score-font color-f04c4c" data-qtip="Code: II<br/>Description: abcd/June<br/>Weight: 2<br/>Date: 28.02.2020<br/>Teacher:xxx">5</span>
我的问题是如何提取:
"Weight: 2"
所需的值存储在属性data-qtip中。使用getAttribute方法获取此属性的值
data-qtip
att_Value= driver.find_element_by_tag_name('<xpath for containing span>').get_attribute("data-qtip")
现在,由于上面的文本中有多个值,并且由换行符</br>分隔,所以您可以将上面的字符串转换为一个列表,并提取所需的任何信息
</br>
values = att_Value.split("<br/>") for v in values: print(v)
上面将打印如下。您可以使用列表索引,如值[0]将为您提供代码,值[2]将为您提供代码权重等
输出:
我认为你的HTML可能有点混乱,所以一定要为将来复制准确的HTML。在“Code:II”之后应该有一个结束引号(如果我没有弄错的话),否则所有的br标记都只是作为字符串呈现。由于您试图获取的信息是该元素的文本,因此只需使用Selenium中的.text属性即可
br
.text
my_element = browser.find_element_by_xpath('//span[@id="some_id"]/whatever/path') my_element_text = my_element.text #grabbing the text property of the element and storing it as a string
如果您只想将.text固定到第一行的末尾,则可以将其固定到第一行。现在,只需对该字符串进行一些后处理,并去除任何您不想要的内容(例如,教师、日期)
你可以用
my_element_text= browser.find_element_by_xpath('//span[contains(.,'Weight')]').text
//现在使用substring函数获取所需文本。假设权重从字符32开始
my_element_text[32:42]
输出: 体重:2
所需的值存储在属性
data-qtip
中。使用getAttribute方法获取此属性的值现在,由于上面的文本中有多个值,并且由换行符
</br>
分隔,所以您可以将上面的字符串转换为一个列表,并提取所需的任何信息上面将打印如下。您可以使用列表索引,如值[0]将为您提供代码,值[2]将为您提供代码权重等
输出:
我认为你的HTML可能有点混乱,所以一定要为将来复制准确的HTML。在“Code:II”之后应该有一个结束引号(如果我没有弄错的话),否则所有的
br
标记都只是作为字符串呈现。由于您试图获取的信息是该元素的文本,因此只需使用Selenium中的.text
属性即可如果您只想将
.text
固定到第一行的末尾,则可以将其固定到第一行。现在,只需对该字符串进行一些后处理,并去除任何您不想要的内容(例如,教师、日期)你可以用
//现在使用substring函数获取所需文本。假设权重从字符32开始
输出: 体重:2
相关问题 更多 >
编程相关推荐