python爬虫网页提取器——xpath

430 查看

xpath简单来说就是根据网页的源码路径去找你想要的的信息。
例子:

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://jikexueyuan.com">极客学院</a>
        <a href="http://jikexueyuan.com/course/" title="极客学院课程库">点我打开课程库</a>
    </div>
</div>

</body>
</html>
'''

设网页文本如上:
xpath简单提取方法(chrome的审查元素有xpath的提取方式)

# -*- coding:utf-8 -*-
from lxml import etree#导入xpath
selector=etree.HTML(html, parser=None, base_url=None)

#提取文本
context=selector.xpath('//*[@id="useful"]/li/text()')
for each in context:
    print each
#结果显示:这是第一条信息
#这是第二条信息
#这是第三条信息




#提取属性
link=selector.xpath('//*[@id="url"]/a/@href')
for each in link:
    print each
#结果显示:http://jikexueyuan.com
#http://jikexueyuan.com/course/



#提取标题
title=selector.xpath('//*[@id="url"]/a/@title')
print title[0]
#结果显示:极客学院课程库