python爬虫之xpath
来源:互联网 发布:土豪直播软件下载 编辑:程序博客网 时间:2024/04/29 09:33
python爬虫之xpath
- XPath是一门语言
- XPath可以在xml文件中查找信息
- XPath支持HTML
- XPath通过元素和属性进行导行
- XPath比正则表达式厉害,简单
XPath使用
要使用XPath就必须要在python中安装lxml库
- from lxml import etree
- selector =etree.HTML(网页源代码)
- selector.xpath(xpath语法)
简单语法
- // 从匹配选择的当前节点选择文档中的节点
- /从根节点往下层寻找
- nodename 选取此节点的所有子节点
- . 选取当前节点
- 提取文本内容:/text()
- 提取属性内容:/@xxxx
特殊用法
- 以相同的字符开头:starts-with(@属性名称,属性字符相同部分)
更多内容请参考XPath文档
<div id="test-1">需要内容1</div><div id="test-2">需要内容1</div><div id="test-3">需要内容1</div>
- 标签嵌套标签:string(.)
<div id="class2">美女, <font color=red>你的微信是多少?</font></div>
基本使用
#-*-coding:utf8-*-from lxml import etreehtml = '''<!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>'''selector = etree.HTML(html)#提取文本content = selector.xpath('//ul[@id="useful"]/li/text()')for each in content: print each#提取属性link = selector.xpath('//a/@href')for each in link: print eachtitle = selector.xpath('//a/@title')print title[0]
特殊使用
#-*-coding:utf8-*-from lxml import etreehtml1 = '''<!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>'''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>'''selector = etree.HTML(html1)content = selector.xpath('//div[starts-with(@id,"test")]/text()')for each in content: print eachselector = etree.HTML(html2)content_1 = selector.xpath('//div[@id="test3"]/text()')for each in content_1: print eachdata = selector.xpath('//div[@id="test3"]')[0]info = data.xpath('string(.)')content_2 = info.replace('\n','').replace(' ','')print content_2
0 0
- python之xpath爬虫
- python爬虫之xpath
- Python爬虫之<XPath与多线程爬虫>
- Python爬虫XPATH
- 爬虫之xpath语法
- Python爬虫Xpath和lxml类库系列之九
- python爬虫之XPath与lxml的使用
- Python爬虫之Xpath与lxml库的用法
- python爬虫xpath的语法
- python爬虫xpath的语法
- Python爬虫:Xpath语法笔记
- Python爬虫:Xpath语法笔记
- python爬虫利器-xpath使用
- scrapy爬虫(1)之xpath
- python3 [入门基础实战] 爬虫入门之xpath爬取脚本之家python栏目
- xpath: Python网页爬虫定位辅助利器
- [python]多线程xpath爬虫
- Python爬虫:Xpath语法笔记【转载】
- STM32准备工作【Keil配置、keil模板建立、ST-Link V2下载配置】
- 生命周期作用域的注解案例
- input输入框输满3个字符自动跳到下一个input输入框
- Servlet的生命周期分及四个阶段?
- bochs调试内核的前期准备
- python爬虫之xpath
- Spark算子执行流程详解之四
- 人类“超级大脑”
- 商户证书
- 汇编语言 计算 2^3 .
- Spring—Quartz定时调度CronTrigger时间配置格式说明与实例
- ActiveMQ 生产者流量控制(Producer Flow Control)
- CentOS 7源
- 深度学习 vs SLAM