Python--通过XPath实现网络爬虫

安装lxml流程

  1. 首先通过下载lxml从中选择适合你的电脑的版本。一般包含Python版本和电脑版本。
  2. 下载很慢,但是下载好之后是lxml-3.5.0-cp27-none-win_amd64.whl(Python2.7、64位Windows10)文件
  3. 我的方法是将该文件放到D:\Software\Python2.7\Scripts安装文件的目录下,然后打开命令行,进入到该目录下再输入命令 pip install lxml-3.5.0-cp27-none-win_amd64.whl 然后就可以了

XPath

  • XPath是一门语言
  • XPath可以在XML文档中查找信息
  • XPath支持HTML
  • XPath通过元素和属性进行导航
  • XPath可以用来提取信息
  • XPath比正则表达式厉害
  • XPath比正则表达式简单
流程
  • 安装lXML第三方库
  • from lxml import etree
  • selector = etree.HTML(网页源代码)
  • selector.xpath(神秘的代码)
简介
  • //:定位根节点
  • /:往下层寻找
  • /text():提取文本内容
  • /@xxxx:提取属性内容
例子
#-*-coding:utf8-*-
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://yuanlief.com">此间少年</a>
        <a href="http://yuanlief.com/course/" title="似水流年">点我打开</a>
    </div>
</div>

</body>
</html>
'''

selector = etree.HTML(html)

#提取文本
# content = selector.xpath('//ul[@id="useful"]/li/text()')
# for each in content:
#     print each
#输出:这是第一条信息
#输出:这是第二条信息
#输出:这是第三条信息
#-------------------------------------------------------------------
#提取属性
#
# link = selector.xpath('//div[@id="url"]/a/@href')
# for each in link:
#     print each
#输出http://yuanlief.com和http://yuanlief.com/course/
#-------------------------------------------------------------------
#title = selector.xpath('//a/@title')
#print title[0]#输出此间少年
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值