请教D7中如何使用xpath路径获取到网页某标签的内容

请教D7中如何使用xpath路径获取到网页某标签的内容,第1张

大概是这样的吧 可以试试

jquery有个 parents()

比如选了一个div id为test,想整xpath的话 $("#test")parents();这样获取的是一个数组,

var aa = [];

$('#test')parents()each(function(){

aapush(thistagName);

});

获取标签名后 就可以替换成xpath了 不过需要注意的是 这个不止获取到body 最后一个元素应该是到html,也不太确定,反正在firefox上是这样的

题主你好,

只用xpath我感觉无法达到题主的目的,因为在我的知识体系中, xpath的最小单位是一个结点或叫一个标签,

也就是说要不你提取value标签,其内容如下:

要不你提取span标签,内容如下:

而上面这两种题主肯定都会, 也不是想要的

-----

所以我能想到的方法有两种:

一种是在提取前使用js将span标签给去掉, 然后就能使用提取value标签的相关xpath得到题主想要的了;

另一种是先将含有span标签的value标签内容提取出来, 然后用正则表达式将span标签给去掉;

-----

如果上面两种方法满足题主的需求,请题主追问说明所用的语言和库,我再补充

=====

希望可以帮到题主, 欢迎追问

在爬取网页的过程中,经常会遇到一些d窗的情况,有alert、confirm、prompt等三种,区别如下:

提示消息框 提供了一个文本字段,用户可以在此字段输入一个答案来响应您的提示。该消息框有一个“确定”按钮和一个“取消”按钮。如果您提供了一个辅助字符串参数,则提示消息框将在文本字段显示该辅助字符串作为默认响应。否则,默认文本为 "<undefined>"。

这三种d窗的共同点是,d出之后你是获取不到任何网页内容的,也就是无法通过常规的driverfind_element_by_xpath这种形式来获取元素。F12是没有任何内容,也无法点选的。

selenium另外有一套方法来把driver转换到d窗上:

其中driver就是你设置好的浏览器句柄,switch_toalert代表你当前的d窗类型,alert就对应alert,accept的意思就是点确定,另外还有dismiss等用法,网上很多了,不详细说。

用这个语句,就可以把d窗点掉,之后正常 *** 作,但是我重点想说的是以下内容:

在实际网页中,往往d窗会有一定延时,这时候你用这个语句就会报一个no such alert的错误,意味着获取不到d窗,此时要用如下的办法解决:

引用Webdriver类,里面的参数第一个是句柄,第二个则是超时等待时间,这里是10秒钟。

Webdriver这种方法叫做 显示等待 ,用一个默认频率不停的刷新(默认是05s),检测当前页面元素是否存在,如果超过10秒则抛出TimeOut。

很显然,这种方法比一般的sleep效率要高。

waituntil(ECalert_is_present())就是判断d窗是否存在,如果存在,那么就不会抛出异常,继续走下一步也就是获取到d窗点击确定。

之后就可以进行正常的 *** 作了。

xpath获取同级节点

XPath轴(XPath Axes)可定义某个相对于当前节点的节点集:

1、child 选取当前节点的所有子元素

2、parent 选取当前节点的父节点

3、descendant 选取当前节点的所有后代元素(子、孙等)

4、ancestor 选取当前节点的所有先辈(父、祖父等)

5、descendant-or-self 选取当前节点的所有后代元素(子、孙等)以及当前节点本身

6、ancestor-or-self 选取当前节点的所有先辈(父、祖父等)以及当前节点本身

7、preceding-sibling 选取当前节点之前的所有同级节点

8、following-sibling 选取当前节点之后的所有同级节点

9、preceding 选取文档中当前节点的开始标签之前的所有节点

10、following 选取文档中当前节点的结束标签之后的所有节点

11、self 选取当前节点

12、attribute 选取当前节点的所有属性

13、namespace 选取当前节点的所有命名空间节点

如:要定位当前td同级后的一个td

//td[='text']/following-sibling::td

<html >

<head>

<title>无标题文档</title>

<script language="javascript" type="text/javascript">

function judge()

{

if (documentform1nicknamevalue=="")

{alert("请输入你的昵称");return false;}

if (documentform1qqvaluelength<5||documentform1qqvaluelength>9)

{alert("请输入你正确的QQ号");return false;}

var mailstr;

mailstr=documentform1mailvalue;

if (mailstrindexOf("@")==-1)

{alert("请输入你正确的E-mail地址");return false;}

if (documentform1liuyanvalue=="")

{alert("请输入留言!");return false;}

return true;

}

</script>

</head>

<body>

<form name="form1" method="post" action="" onsubmit="return judge()">

昵称:

<input name="nickname" type="text" id="nickname" size="13" maxlength="20">

QQ号:

<input name="qq" type="text" id="qq" size="16" maxlength="10">

E-mail:

<input name="mail" type="text" id="mail" size="35">

个人网站:

<input name="wanzhan" type="text" id="wanzhan">

<input type="submit" name="Submit" value="提交">

<input name="reset" type="reset" id="reset" value="重置">

</form>

</body>

</html>分享给你的朋友吧:i贴吧 新浪微博腾讯微博QQ空间人人网豆瓣MSN

对我有帮助

0

以上就是关于请教D7中如何使用xpath路径获取到网页某标签的内容全部的内容,包括:请教D7中如何使用xpath路径获取到网页某标签的内容、关于python的使用xpath怎样获取如下内容、Selenium-针对alertd窗无法获取,d出no such alert的解决方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9334600.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存