<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <ul class="clearfix"> <li class="pa-3rXKoIIo"><a href="//finance.ifeng.com/" target="_blank" rel="nofollow me noopener noreferrer" title="财经首页">财经首页</a></li> <li class=""><a href="//finance.ifeng.com/stock/" target="_blank" rel="nofollow me noopener noreferrer" title="股票">股票</a> </li> <li class=""><a href="//finance.ifeng.com/gold/" target="_blank" rel="nofollow me noopener noreferrer" title="iMarkets">iMarkets</a></li> <li class=""><a href="//finance.ifeng.com/shanklist/1-66-" target="_blank" rel="nofollow me noopener noreferrer" title="全球快报">全球快报</a></li> <li class=""><a href="http://finance.ifeng.com/hk" target="_blank" rel="nofollow me noopener noreferrer" title="港股">港股</a> </li> <li class=""><a href="//tech.ifeng.com/" target="_blank" rel="nofollow me noopener noreferrer" title="科技">科技</a> </li> <li class=""><a href="//finance.ifeng.com/money/" target="_blank" rel="nofollow me noopener noreferrer" title="理财">理财</a> </li> <li class=""><a href="//toujiao.ifeng.com/" target="_blank" rel="nofollow me noopener noreferrer" title="投教">投教</a> </li> <li class=""><a href="//ds.ifeng.com/" target="_blank" rel="nofollow me noopener noreferrer" title="大赛">大赛</a></li> <li class=""><a href="https://finance.ifeng.com/shanklist/1-74-" target="_blank" rel="nofollow me noopener noreferrer" title="WEMONEY">WEMONEY</a></li> <li class=""><a href="//www.fengjr.com/cn/?c=1coa7kli3-1&channel=1coa7kli3-1" target="_blank" rel="nofollow me noopener noreferrer" title="凤凰金融">凤凰金融</a></li> <li class=""><a href="https://finance.ifeng.com/stock/special/sgkmh/" target="_blank" rel="nofollow me noopener noreferrer" title="神光">神光</a></li> <li class=""><a href="http://culture.ifeng.com/huodong/special/2018sdzhjt/" target="_blank" rel="nofollow me noopener noreferrer" title="舍得讲堂">舍得讲堂</a></li> <li class=""><a href="//finance.ifeng.com/institute/index.shtml" target="_blank" rel="nofollow me noopener noreferrer" title="研究院"><h3>研究院</h3></a></li> </ul> </body> </html>
例子
//ul[@class="clearfix"]/li 获取class="clearfix"的url下的所有的li
//ul[@class="clearfix"]/li/@class 获取class="clearfix"的url下的所有的li的class属性
//ul[@class="clearfix"]/li/a/text() 获取class="clearfix"的url下的所有的li下的a标签的内容
//ul[@class="clearfix"]/li/a/@href 获取class="clearfix"的url下的所有的li下的a标签href的属性
//ul[@class="clearfix"]/li/a/@title 获取class="clearfix"的url下的所有的li下的a标签title的属性
//ul/li/a/h3 获取的值为研究院 获取h3 要一级一级的写,漏掉会报错
//ul//h3 获取的值为研究院 //当前ul下的任意一个节点选取,不用一级一级的写
//a[@class="n"]/@href 获取下一页网址
//a[text()="下一页>"] 根据文本定位
<html><body>
<div>
<div>
<ul>
<li class="item-0"><a href="link1.html">first item</a></li>
<li class="item-1"><a href="link2.html">second item</a></li>
<li class="item-inactive"><a href="link3.html"><span class="bold">third item</span></a></li>
<li class="item-1"><a href="link4.html">fourth item</a></li>
<li class="item-0"><a href="link5.html">fifth item</a></li>
</ul>
</div>
</div>
</body></html>
/ 从根节点选取。
// 从当前html中的任意位置开始选择。
. 选取当前节点。
.. 选取当前节点的父节点。
@ 选取属性。
li//a/text()获取a标签文本
li//a//text()获取a标签下所有文本
li//a 表示li下的任何一个标签
li//span
1. 获取所有的 <li> 标签
result = html.xpath('//li')
2. 继续获取<li> 标签的所有 class属性
result = html.xpath('//li/@class')
3. 继续获取<li>标签下hre 为 link1.html 的 <a> 标签
result = html.xpath('//li/a[@href="link1.html"]')
4. 获取<li> 标签下的所有 <span> 标签
result = html.xpath('//li//span')
5. 获取 <li> 标签下的<a>标签里的所有 class
result = html.xpath('//li/a//@class')
6. 获取最后一个 <li> 的 <a> 的 href
result = html.xpath('//li[last()]/a/@href')
7. 获取倒数第二个元素的内容
result = html.xpath('//li[last()-1]/a/text()')
<div class="indent"> <div class=""> <p class="ul first"></p> <table width="100%" class=" xh-highlight"> <tbody> <tr class="item"> <td width="100" valign="top"> <a class="nbg" href="https://movie.douban.com/subject/30414462/" title="黑镜:潘达斯奈基"> <img src="https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2543862640.webp" width="75" alt="黑镜:潘达斯奈基" class=""> </a> </td> <td valign="top"> <div class="pl2"> <a href="https://movie.douban.com/subject/30414462/" class=""> 黑镜:潘达斯奈基 / <span style="font-size:13px;">黑镜:2018圣诞特别篇</span> </a> <p class="pl">2018-12-28(美国) / 菲恩·怀特海德 / 克雷格·帕金森 / 爱丽丝·洛维 / 阿西姆·乔杜里 / 威尔·保尔特 / 塔露拉·哈登 / 卡特里奥·诺克斯 / 保罗·布拉德利 / 乔纳森·阿里斯 / A·J·霍顿 / 弗勒尔·基思 / 劳拉·埃弗兰 / 阿伦·阿萨德 / 苏珊妮·伯登...</p> <div class="star clearfix"> <span class="allstar35"></span> <span class="rating_nums">7.0</span> <span class="pl">(35794人评价)</span> </div> </div> </td> </tr> </tbody> </table> <div id="collect_form_30414462" class=""></div> <p class="ul"></p> <table></table> <table></table> <table></table> </div> </div>
//div[@class="indent"]/div/table 获取所有table,一级一级选
//div[@class="indent"]//table 获取所有table
//div[@class="indent"]//table[1] 获取第一个table
//div[@class="indent"]//table//div[@class="pl2"]/a//text() 获取所有a下面的所有文本
//div[@class="indent"]//table//div[@class="pl2"]/a/@href 获取a标签的href
//div[@class="indent"]//table//a[@class="nbg"]/img/@src 所有图片的src