打开我的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元素文本信息
list_1_element = selector.xpath('//li[1]/a/text()')[0]
:这行代码使用XPath表达式从文档中选择第一个<li>
元素下的<a>
元素的文本内容,并将其存储在变量list_1_element
中。[0]
表示选择列表中的第一个元素,因为selector.xpath('//li[1]/a/text()')
可能会返回一个包含多个匹配结果的列表。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" 的所有 <li> 元素,并将它们存储在变量 list_2 中。这将返回一个列表,其中包含满足条件的所有元素。
2.print(list_2):这行代码将变量 list_2 的值打印输出到控制台或标准输出。它的作用是显示被选中的具有 "line-message" 类的 <li> 元素的列表。
3.list_2_element = selector.xpath('//li[@class="line-message"]/a/text()')[1]:这行代码使用XPath表达式从文档中选择具有 class 属性值为 "line-message" 的所有 <li> 元素下的 <a> 元素的文本内容,并将索引为 1 的元素的文本内容存储在变量 list_2_element 中。索引从 0 开始计数,所以 [1] 表示选择列表中的第二个元素。
4.print(list_2_element):这行代码将变量 list_2_element 的值打印输出到控制台或标准输出。它的作用是显示被选中的具有 "line-message" 类的 <li> 元素下的第二个 <a> 元素的文本内容。
代码运行结果如下
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.最后,将处理后的文本内容打印输出到控制台或标准输出。
结果展示