zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    pandas 和反射联合使用
    反射
    获取Cookie 遇到的问题
    接口自动化之 问题
    接口自动化之 数据库操作
    logging日志模块
    数据驱动 --ddt
    logging--日志打印模块
    APP专项测试5 --PFS
    Monkey 参数
  • 原文地址:https://www.cnblogs.com/fh-fendou/p/11040050.html
Copyright © 2011-2022 走看看