编程语言
首页 > 编程语言> > Python - 爬虫 - Xpath定位之starts-with()和string()函数的简单使用

Python - 爬虫 - Xpath定位之starts-with()和string()函数的简单使用

作者:互联网

Python - 爬虫 - Xpath定位之starts-with()和string()函数的简单使用

文章目录

starts-with()

1. 函数原型

函数解释
fn:starts-with(string1,string2)如果 string1 以 string2 开始,则返回 true,否则返回 false。
例子:starts-with(‘XML’,‘X’)
结果:true

2. 使用starts-with()获取相同字符开头的多个标签

测试用的HTML

<li class="tag-1">列表项_1</li>
<li class="tag-2">列表项_2</li>
<li class="tag-3">列表项_3</li>
<li class="item-4">列表项_4</li>

使用starts-with()获取class属性开头为"tag"<li>标签的文本

from lxml import etree

html_txt = """
<li class="tag-1">列表项_1</li>
<li class="tag-2">列表项_2</li>
<li class="tag-3">列表项_3</li>
<li class="item-4">列表项_4</li>
"""

# etree选择器
selector = etree.HTML(html_txt)
# 使用starts-with()获取class属性开头为"tag"的<li>标签的文本
contents = selector.xpath('//li[starts-with(@class, "tag")]/text()')

# 打印获取到的文本
for content in contents:
    print(content)

运行结果

列表项_1
列表项_2   
列表项_3

代码解释

string()

1. 函数原型

函数解释
fn:string(arg)返回参数的字符串值。参数可以是数字、逻辑值或节点集。
例子:string(314)
结果:“314”

2. 使用string()获取标签套标签的文本内容

测试用的HTML

<div class="red">
    内容1
    <div>
        内容2
        <div>
            内容3
        </div>
    </div>
</div>

使用string()获取标签套标签的文本内容

from lxml import etree

html_text = """
<div class="red">
    内容1
    <div>
        内容2
        <div>
            内容3
        </div>
    </div>
</div>
"""

selector = etree.HTML(html_text)

# 选择class属性为"red"的list,选择0号项(因为只有1个符合条件的div)
content1 = selector.xpath('//div[@class="red"]')[0]
# 选择当前结点返回字符串
content2 = content1.xpath('string(.)')

# 打印输出字符串
print(content2)

运行结果


    内容1

        内容2

            内容3

代码解释

参考

标签:Xpath,string,Python,标签,列表,starts,class,函数
来源: https://blog.csdn.net/weixin_42490414/article/details/117127905