python 使用lxml中的xpath 和 scrpay中的xpath的区别


1.scrapy中的xpath:直接是response.xpath 就是可以,例如:

result = response.xpath('//span[@class="packaging-des"]/text()').extract() #extract_first() 等同于 extract()[0]

倘若不加 extract() 的话 就只能得到html源代码了,而得不到你想要的文本,所以得加上。

 

2.lxml中的xpath,首先需要导入个etree包才能使用xpath

from lxml import etree

然后:

html = etree.HTML(wb_data) #wb_data 是你请求获取到的网页源代码,例如使用requests.get(url).text 获取到的源代码
result = html.xpath('//span[@class="packaging-des"]/text()')#这样就可以获取跟上面一样的文本了,不需要使用extract()

但是有时候咱们不想单纯的直接获取后面的text文本,或许你想获取html源代码,那如何办呢?

html.xpath('//span[@class="packaging-des"]') 这样获取吗?一开始我是这样想的,结果得到的是Element对象。
那我们如何把Element对象转变成html代码呢?
主要思想是利用xpath获取到指定区域的Element对象,然后再将Element对象传给etree.tostring(),即可得到指定区域的html代码
示例:
result = html.xpath('//span[@class="packaging-des"]')
div_str=etree.tostring(result[0],encoding='utf-8')

成功获取到了指定区域的html代码。

参考链接:https://www.cnblogs.com/just-do/p/9778941.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM