php获取xpath值失败,xpath无法获取值、返回值为[]或者{}的问题解决

最近用xpath,刚开始有很多问题

用测试代码跑的时候经常获取不到值。

第一种情况:

page= etree.parse('text.html') #text.html为一个html文件

page = etree.HTML(html) #heml为一个字符串

一开始通过使用字符串进行解析,通过page.xpath()进行元素获取,找不到值,后面发现这个type是“lxml.etree._Element” ,而不是“lxml.etree._ElementTree”

获取所有元素的时候两个都行,但是通过id或者class获取时下面的那个获取不到。使用第一种就行。

第二种情况:

/ 从根节点选取。

// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。

这两个符号是官网解释。

下面是我的代码

html.xpath('/div[contains(@id,"test")]')

html.xpath('//div[contains(@id,"test")]')

发现第一个中不到元素,第二个可以。

附上html代码:

book1111

Harry Potter

29.99

book2222

Learning XML

39.95

Learning XML

目前存在这些问题体,后面遇到再加。

C#获取存储过程返回值和输出参数值的方法

//转自网络,先留个底 1.获取Return返回值 //存储过程 //Create PROCEDURE MYSQL // @a int, // @b int //AS // return @a + @ ...

Python从线程获取函数返回值

Python中利用强大的threading模块可以很容易的实现多线程开发,提高运行速度.这一般是对某个进行大量计算操作的的函数进行多线程处理,然后合并各线程的结果.获取函数返回值的方法可以如下: 1) ...

Ksoap2 获取webservice返回值的getResponse() 出现的问题

今天写了一个判断记录重复的webservcie 返回布尔类型 // 判断序列号在数据库是否重复 public static boolean isSerialNumExist(String serial ...

EF中执行存储过程,获取output返回值

EF不能直接支持执行存储过程,于是使用转化成执行SQL语句的形式,却怎么也获取不到output的值,折腾的好久,终于解决了,分享下曲折的经历: public int AddVote(int title ...

PHP获取函数返回值的引用

通过在函数前添加&可以获取函数返回值的引用,如:function &test(){return 10;}

android两种方式获取AsyncTask返回值

获取AsyncTask返回值,在Activity中使用. 引用链接:https://www.oschina.net/code/snippet_725438_49858#72630 [1].[代码] [ ...

asp 获取url 返回值 和 对json 返回值的处理

Function GetHttpPage(HttpUrl,endoce) If endoce = "" Then endoce = "GB2312" If Is ...

java 反射获取方法返回值类型

//ProceedingJoinPoint pjp //获取方法返回值类型 Object[] args = pjp.getArgs(); Class>[] paramsCls = ne ...

用jquery的ajax方法获取return返回值的正确姿势

如果jquery中,想要获取ajax的return返回值,必须注意两方面,ajax的同步异步问题,在ajax方法里面还是外面进行return返回值. 下面列举了三种写法,如果想成功获取到返回值,参考第 ...

Python3.x:Selenium+PhantomJS爬取带Ajax、Js的网页及获取JS返回值

前言 现在很多网站的都大量使用JavaScript,或者使用了Ajax技术.这样在网页加载完成后,url虽然不改变但是网页的DOM元素内容却可以动态的变化.如果处理这种网页是还用requests库或者 ...

随机推荐

C#Dictionary键值对取值用法

必须包含名空间System.Collection.Generic     Dictionary里面的每一个元素都是一个键值对(由二个元素组成:键和值)     键必须是唯一的,而值不需要唯一的     ...

洛谷P2243 电路维修

题目地址 转化为图论问题 对于每个交叉点(X,Y)抽象成节点.与它相邻的四个点中,可以直接连线的边权为0,否则边权为1. 用死了的SPFA解决图论问题. #include

HTTPS过程以及详细案例

1.HTTPS的过程 1.客户端向服务端发送请求,客户端主要向服务器提供以下信息: 支持的协议版本,比如TLS 1.0版. 一个客户端生成的随机数,稍后用于生成"对话密钥". 支持 ...

Ubuntu18.04下vim的tab缩进设置为4个空格

在/etc/vim/vimrc最后添加如下内容 set ts = 4 set exbandtab set autoindent

IOS应用内支付IAP从零开始详解

前言 什么是IAP,即in-app-purchase 这几天一直在搞ios的应用内购,查了很多博客,发现几乎没有一篇博客可以完整的概括出所有的点,为了防止大伙多次查阅资料,所以写了这一篇博客,希望大家 ...

rebase合并commit步骤详解

网上关于rebase合并commit有很多文章,但大部分中间一些步骤没有写明 第一步:在终端输入 git rebase -i [startPoint] [endPoint] 并回车 第二步:编辑指令, ...

ELK 的插件安装(head)

这里我装了一个head插件和kopf的插件 ./plugin install mobz/elasticsearch-head ./plugin install lmenezes/elasticsear ...

centos查看启动时间

系统启动时间 who -b date -d "$(awk -F. '{print $1}' /proc/uptime) second ago" +"%Y-%m-%d %H ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值