首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >XPATH -查找子项具有特定值的元素

XPATH -查找子项具有特定值的元素
EN

Stack Overflow用户
提问于 2018-06-07 22:05:30
回答 1查看 667关注 0票数 -3

我想用xpath找到一个特定值,并把它写到我的excel表中。

该值应写入我的excel表中。

//编辑: H3类是此站点上唯一的H3类

代码语言:javascript
复制
 <div class="col-md-6 col-xs-12" id="infoBox">
<div class="col-xs-12 thumbnail thumbnail-more">
<div class="text-center hidden-sm hidden-xs" style="margin-top:-22px">
<H1 itemprop="name" class="titleDesktop toUpperCase">Tygra</H1>
<H2 class="productTypeText">Product Type: Funko Pop! Vinyl</H2>
</div>
<div class="clear"></div>
<div class="col-xs-6 text-center">
<div class="progress-bar progress-bar-success" role="progressbar"></div>
<H5><i data-toggle="tooltip" class="fa fa-question-circle-o" data-html="true" title="Value is updated daily from recent eBay sales. See <a style='color:white' href='faqcalc'>FAQ</a> for more info. Last update: 6 June 2018"></i> Trending at:</H5>
<H3 class="valueText">$10</H3>
</div>
<div class="col-xs-6 text-center">
<div class="progress-bar progress-bar-info" role="progressbar"></div>
<H5>#573</H5>
<H5>Release: Dec 2017</H5>
</div>
<div class="clear"><br></div>
<div class="col-xs-6 text-center">
<div class="progress-bar progress-bar-warning" role="progressbar"></div>
<h5>See more:</h5>
<div class="col-xs-12 no-gutter opacityHover">
<a href="/funko/all/thundercats"><div class="col-md-8 col-md-offset-2 col-xs-12 no-gutter" itemprop="category"><img class="img-responsive img-rounded img-center" src="/img/category/thundercats.png" alt="See more in Thundercats"><div class="no-gutter">Thundercats</div></div></a>
</div>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-07 22:42:14

CSS选择器方法:

元素的确切CSS选择器是:

代码语言:javascript
复制
#infoBox > div.col-xs-12.thumbnail.thumbnail-more > div:nth-child(3) > h3

您可以将其简化为:

甚至是

获取HTML文档后,可以使用以下任一选择器进行访问:

代码语言:javascript
复制
.querySelector("#infoBox > div.col-xs-12.thumbnail.thumbnail-more > div:nth-child(3) > h3").InnerText
.querySelector("#infoBox *> div:nth-child(3) > h3").InnerText
.querySelector(".valueText").InnerText

以下是如何使用Internet Explorer和上面显示的CSS选择器之一提取当前价格($10)的示例:

代码:

代码语言:javascript
复制
Option Explicit

Public Sub GetInfo()
    Dim IE As Object
    Dim html As Object

    With CreateObject("InternetExplorer.Application")
        .Visible = True
        .navigate "https://stashpedia.com/funko/pop-vinyl/thundercats/tygra-exclusive-573"

        While .Busy Or .readyState < 4: DoEvents: Wend

        Set html = .document

        With html
           Debug.Print .querySelector("#infoBox *> div:nth-child(3) > h3").innerText
        End With

        Stop
        'Quit '<== Remember to quit application
    End With
End Sub

关于CSS选择器here的信息。

XPath方法:

如果您想使用上面所示的方法不支持的XPath,您可以使用Selenium basic,您的脚本可能如下所示:

代码语言:javascript
复制
Option Explicit
Public Sub GetInfoSel()
    Dim d As WebDriver
    Set d = New ChromeDriver
    Const URL = "https://stashpedia.com/funko/pop-vinyl/thundercats/tygra-exclusive-573"

    With d
        .Start "Chrome"
        .Get URL
       Debug.Print .FindElementByXPath("//*[@id=""infoBox""]/div[1]/div[3]/h3").Text
        'Quit
    End With
End Sub

注意:下载并安装后,您需要转到VBE中的工具>引用,并添加对Selenium类型库的引用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50743307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档