爬虫神器xpath的用法(一)

1、如果你没有安装lxml,请运行pip install lxml或者easy_install lxml安装,如果在安装过程中失败的话,

是因为lxml需要依赖某些库文件,具体可以问下度娘,这里不再赘述。

2、安装成功后,请看下面测试代码

//:定位根节点
/:往下层寻找
/text(): 提取文本内容
/@xxx: 提取属性内容

#encoding=utf-8
from lxml import etree
html = '''
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>测试-常规用法</title>
</head>
<body>
<div id="content">
    <ul id="useful">
        <li>这是第一条信息</li>
        <li>这是第二条信息</li>
        <li>这是第三条信息</li>
    </ul>
    <ul id="useless">
        <li>不需要的信息1</li>
        <li>不需要的信息2</li>
        <li>不需要的信息3</li>
    </ul>
    <div id="url">
        <a href="http://www.meilishuo.com">美丽说</a>
        <a href="http://www.meilishuo.com" title="美丽说流行款">美丽说只做正确流行款</a>
    </div>
</div>
</body>
</html>
'''
selector = etree.HTML(html)

#提取文本,获取根目录下div且id=content下面的ul且id=useful的文本内容
content = selector.xpath('//div[@id="content"]/ul[@id="useful"]/li/text()')
for each in content:
    print each

#提取属性 获取根目录下a标签且属性为href的内容,如果不指定则返回为list
link = selector.xpath('//a/@href')
print link

title = selector.xpath('//a/@title')
print title[0]

将打印出如下信息:

//提取文本属性的输出:

这是第一条信息
这是第二条信息
这是第三条信息

//提起属性的输出:
['http://www.meilishuo.com', 'http://www.meilishuo.com']
美丽说流行款

posted @ 2016-03-06 10:24  北京流浪儿  阅读(838)  评论(0编辑  收藏  举报