xpath库简述

1.导入xpath的解析库etree: from lxml import etree
2.实例化一个etree对象命名为tree,且将被解析的源码加载到该对象中,使用.parse()方法
导入html文件 tree = etree.parse(‘文件名’)或者导入requests请求到的页面 tree = etree.HTML(page_text)(只能解析text形式,可用page_text = page_text.text转化

3.对源码内部解析,使用.xpath()方法,返回一个列表,列表元素为 对象 at 内存位置 形式。需要文本形式则在最后标签加上/text()(直系文本)或//text()(非直系文本,即该标签下所有文本)这样取得的文本仍为列表,用列表方法[n]来取得第n+1个文本。
(1)标签选择, .xpath(’/根标签(一般是html)/…/想要标签’)比如 r = tree.xpath(’/html/body/div’),返回的列表内含所有div标签
(2)标签跳跃, .xpath(’/根标签(一般是html)//想要标签’)比如 r = tree.xpath(’/html//div’),返回的列表内含所有div标签
(3)标签搜索, .xpath(’//想要标签[第n个标签]’)比如 r = tree.xpath(’//div[n(从1开始记)]’),返回的列表内含所有div标签,可用[n]指定某个标签,n从1开始记。//方法可与/方法混用。
(4)标签搜索(特定属性),.xpath(’//想要标签[@属性名=“属性值(必须是双引号括住)”]’)比如 tree.xpath(’//div[@class=“song”]’),返回的列表内含所有div标签且class属性为song
(5)获取想要属性名对应的属性值,比如要上面那个class的属性值"song",可用 .xpath(’//想要标签/@属性名’),返回为列表

例: r = tree.xpath(’//div[@class=“tang”]//li[5]/a/text()’)[0]
html为:

<div class="tang">
		<ul>
			<li><a href="http://www.baidu.com" title="qing">清明时节雨纷纷,路上行人欲断魂,借问酒家何处有,牧童遥指杏花村</a></li>
			<li><a href="http://www.163.com" title="qin">秦时明月汉时关,万里长征人未还,但使龙城飞将在,不教胡马度阴山</a></li>
			<li><a href="http://www.126.com" alt="qi">岐王宅里寻常见,崔九堂前几度闻,正是江南好风景,落花时节又逢君</a></li>
			<li><a href="http://www.sina.com" class="du">杜甫</a></li>
			<li><a href="http://www.dudu.com" class="du">杜牧</a></li>
			<li><b>杜小月</b></li>
			<li><i>度蜜月</i></li>
			<li><a href="http://www.haha.com" id="feng">凤凰台上凤凰游,凤去台空江自流,吴宫花草埋幽径,晋代衣冠成古丘</a></li>
		</ul>
	</div>

返回:杜牧

可以直接右击想要的东西,copy–>xapth即可获得路径

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值