第二篇:获取标签文本内容

打开我的pyCharm软件 在task_3右键点击 创建我们的python文件 (获取标签的文本内容)

1.导入lxml库的etree包

2.导入我们提前在网页所获取的html文本内容。(注:我们需要使用etree解析html内容

3.查出我们所知道的html中[li]中第1个[li]标签文本信息  

具体而言,这个XPath表达式 //li[1]/a/text() 匹配满足以下条件的元素:

//li:选择文档中所有的 <li> 标签。

[1]:选取第一个匹配的 <li> 元素。

/a:选择该 <li> 元素下的 <a> 子元素。

/text():提取 <a> 元素的文本内容

selector.xpath('//li[1]/a/text()') 的作用是从选择器 selector 表示的文档中提取出第一个 <li> 元素下的 <a> 元素的文本内容。这可以用于从 HTML 或 XML 文档中提取特定元素的值或文本内容,进行数据抓取和解析等任务。

print(list_1) 的作用是将变量 list_1 的值打印输出到控制台或标准输出

运行结果如图所示

4.查找出已知html中[li]中第1个[li]标签下的a元素文本信息

  1. list_1_element = selector.xpath('//li[1]/a/text()')[0]这行代码使用XPath表达式从文档中选择第一个 <li> 元素下的 <a> 元素的文本内容,并将其存储在变量 list_1_element 中。[0] 表示选择列表中的第一个元素,因为 selector.xpath('//li[1]/a/text()') 可能会返回一个包含多个匹配结果的列表
  2. print(list_1_element):这行代码将变量 list_1_element 的值打印输出到控制台或标准输出。它的作用是显示被选中的第一个 <li> 元素下的 <a> 元素的文本内容。

代码运行结果

5.我们需要通过class属性定位去查看html中[li]中的第三个[li]标签属性

注:与我们的第3点的作用大同小异)代码执行结果如下

6.通过class属性定位查找出已知html中[li]中的第三个[li]标签属性和a元素文本信息

1.list_2 = selector.xpath('//li[@class="line-message"]'):这行代码使用XPath表达式从文档中选择具有 class 属性值为 "line-message" 的所有 &lt;li&gt; 元素,并将它们存储在变量 list_2 中。这将返回一个列表,其中包含满足条件的所有元素。

2.print(list_2):这行代码将变量 list_2 的值打印输出到控制台或标准输出。它的作用是显示被选中的具有 "line-message" 类的 &lt;li&gt; 元素的列表。

3.list_2_element = selector.xpath('//li[@class="line-message"]/a/text()')[1]:这行代码使用XPath表达式从文档中选择具有 class 属性值为 "line-message" 的所有 &lt;li&gt; 元素下的 &lt;a&gt; 元素的文本内容,并将索引为 1 的元素的文本内容存储在变量 list_2_element 中。索引从 0 开始计数,所以 [1] 表示选择列表中的第二个元素。

4.print(list_2_element):这行代码将变量 list_2_element 的值打印输出到控制台或标准输出。它的作用是显示被选中的具有 "line-message" 类的 &lt;li&gt; 元素下的第二个 &lt;a&gt; 元素的文本内容。

代码运行结果如下

7.提取出含有‘line-’的li下的a元素内容

(注:给定的代码的作用是从文档中提取出具有以 "line-" 开头的 class 属性值的 <li> 元素下的所有 <a> 元素的文本内容,并将这些文本内容存储在名为 list4 的变量中,然后将其打印输出。这可以用于从HTML或XML文档中提取具有特定样式类的元素的内容。)代码执行结果如下

8.提取出所有UL下的所有文本信息

(注:给定的代码的作用是首先选择文档中所有的 <ul> 元素并存储在 list5 中,然后将所有选中的 <ul> 元素的文本内容合并为一个字符串,并将这个字符串存储在 all 变量中,最后打印输出这个字符串。这样可以提取出所有 <ul> 元素下的文本信息并以单一的字符串形式进行展示。)

代码执行结果

最后:删除左右换行符\n,使用空格替换\n

1.首先将先前选择的所有 <ul> 元素的文本内容存储在 text 变量中。

2.然后,通过 strip() 方法删除 text 中的左右空格。

3.接着,使用 replace('\n', '') 方法将 text 中的换行符(\n)替换为空格。

4.最后,将处理后的文本内容打印输出到控制台或标准输出。

结果展示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: QTreeWidgetItem是Qt用于在QTreeWidget显示项目的类。要获取QTreeWidgetItem的标签文本,可以使用QTreeWidgetItem的text()函数。 例如,假设你有一个QTreeWidget,其包含一个QTreeWidgetItem,你可以这样获取它的标签文本: ``` QTreeWidget *treeWidget = new QTreeWidget(); QTreeWidgetItem *item = new QTreeWidgetItem(treeWidget); item->setText(0, "Item Label"); QString label = item->text(0); // label = "Item Label" ``` 这里假设QTreeWidgetItem的标签在第0列。如果你想获取不同列的标签文本,可以将第0个参数替换为想要获取的列的编号。 希望这对你有帮助! ### 回答2: QTreeWidgetItem是Qt框架用于展示树形结构的小部件。它可以包含子项,每个子项可以有多个列,并且可以设置标签文本以便于在树形结构显示。 要获取QTreeWidgetItem的标签文本,可以使用以下代码: 1. 首先,需要获取到QTreeWidgetItem对象。 2. 然后,可以使用QTreeWidgetItem的text()方法来获取指定列的标签文本。这个方法接受一个整数参数,表示列的索引。索引从0开始,对应于子项的列顺序。 下面是一个示例代码: QTreeWidgetItem *item = new QTreeWidgetItem(); // 创建一个QTreeWidgetItem对象 // 设置标签文本 item->setText(0, "标签1"); item->setText(1, "标签2"); item->setText(2, "标签3"); // 获取标签文本 QString text1 = item->text(0); // 获取第一列的标签文本,结果为"标签1" QString text2 = item->text(1); // 获取第二列的标签文本,结果为"标签2" QString text3 = item->text(2); // 获取第三列的标签文本,结果为"标签3" 在上述示例,首先创建了一个QTreeWidgetItem对象,并且使用setText()方法设置了三个列的标签文本。然后使用text()方法按列索引获取标签文本并保存到了对应的QString对象。 通过以上方法,就可以获取到QTreeWidgetItem的标签文本了。 ### 回答3: QTreeWidgetItem是Qt框架用于在树形控件显示数据的类。要获取QTreeWidgetItem的标签文本,可以使用QTreeWidgetItem的text()方法。 首先,确保已经创建了树形控件和QTreeWidgetItem对象。然后,使用QTreeWidgetItem的text()方法来获取指定列的标签文本。 例如,假设有一个名为treeWidget的树形控件,其有一个名为item的QTreeWidgetItem对象,该对象位于第一行,第一列。可以使用以下代码来获取这个QTreeWidgetItem的标签文本: QString labelText = treeWidget->topLevelItem(0)->text(0); 上述代码,使用topLevelItem()方法获取指定索引处的QTreeWidgetItem对象,参数0表示第一行。然后,使用text()方法获取该QTreeWidgetItem对象的第一列(参数0)的标签文本获取标签文本后,可以将其用于需要的操作,例如显示在UI界面上或进行进一步的处理。 需要注意的是,QTreeWidgetItem的text()方法返回的是QVariant类型的数据。如果需要将其转换为QString类型的数据进行使用,可以使用toString()方法进行转换。 总而言之,在创建了树形控件,并创建了QTreeWidgetItem对象后,可以使用text()方法来获取QTreeWidgetItem的标签文本,并使用toString()方法将其转换为QString类型的数据进行使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值