爬虫神器xpath的用法

Posted 北京流浪儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫神器xpath的用法相关的知识,希望对你有一定的参考价值。

爬取网页内容的时候,往往网页标签比较复杂,对于这种情况,需要用xpath的starts-with和string(.)功能属性来处理,具体看事例

#encoding=utf-8
from lxml import etree
html1 = ‘‘‘
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <div id="test-1">需要的内容1</div>
    <div id="test-2">需要的内容2</div>
    <div id="testfault">需要的内容3</div>
</body>
</html>
‘‘‘
#提取id属性为test开头的的内容,需要使用xpath的start-with属性
selector = etree.HTML(html1)
content = selector.xpath(//div[starts-with(@id,"test")]/text())
for each in content:
    print each

#提取多个标签层级的内容,需要使用xpath的string(.)将内容转为字符串再获取
html2 = ‘‘‘
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <div id="test3">
        我左青龙,
        <span id="tiger">
            右白虎,
            <ul>上朱雀,
                <li>下玄武。</li>
            </ul>
            老牛在当中,
        </span>
        龙头在胸口。
    </div>
</body>
</html>
‘‘‘
selector1 = etree.HTML(html2)
data = selector1.xpath(//div[@id="test3"])[0]
info = data.xpath(string(.))
content = info.replace(\n,‘‘).replace( ,‘‘)
print content

输出:

需要的内容1
需要的内容2
需要的内容3
我左青龙,右白虎,上朱雀,下玄武。老牛在当中,龙头在胸口。

以上是关于爬虫神器xpath的用法的主要内容,如果未能解决你的问题,请参考以下文章

Python爬虫系列之 xpath:html解析神器

爬虫Xpath高级用法

爬虫神器XPath,程序员带你免费获取周星驰等明星热门电影

Python爬虫杂记 - Xpath高级用法

Python爬虫利器三之Xpath语法与lxml库的用法

Python爬虫利器三之Xpath语法与lxml库的用法