【问题标题】:Getting text() element in <p> with VBA/Selenium使用 VBA/Selenium 在 <p> 中获取 text() 元素
【发布时间】:2022-06-21 02:01:32
【问题描述】:

使用 Excel 2019 VBA,我正在尝试从具有这种结构的网页上的段落中获取数据。

<p>
    <strong>Release Date:</strong>
    " May 30th 2022"
    <br>

    <strong>From:</strong>
    <a href=URL>Title</a>
    <br>

    <strong>Performers:</strong>
    <a href=URL1>Name1</a>, 
    <a href=URL2>Name2</a>, 
    <a href=URL3>Name3</a>
</p>

这是段落的 xpath。

/html/body/div[11]/div/div/div[1]/div[1]/div/div/p[1]

要获取单个元素(“发布日期”、“发件人”和“表演者”),我必须使用“Instr”或正则表达式解析整个段落。

有没有办法用 XPath 直接引用这些元素?

例如,“发布日期”Xpath 是:

/html/body/div[11]/div/div/div[1]/div[1]/div/div/p[1]/text()[1]

我尝试使用以下方法直接获得此功能,但它们都不起作用。

webdriver.FindElementsByXPath("//div[11]/div/div/div[1]/div[1]/div/div/p[1]/text()")(1) - Invalid Selector

webdriver.FindElementsByXPath("//div[11]/div/div/div[1]/div[1]/div/div/p[1]").Attribute("text")(1) - returns nothing

webdriver.FindElementsByXPath("//div[11]/div/div/div[1]/div[1]/div/div/p[1]")(1).Attribute("text") - returns nothing

webdriver.FindElementsByXPath("//div[11]/div/div/div[1]/div[1]/div/div/p[1]").text(1) - invalid procedure call

webdriver.FindElementsByXPath("//div[11]/div/div/div[1]/div[1]/div/div/p[1]")(1).text - returns entire paragraph

任何建议将不胜感激。

【问题讨论】:

  • 有实际的网址吗?
  • 基于此,用 XPath 好像无法获取日期:stackoverflow.com/a/8506502/11792868
  • 你有执行JS的能力,所以你当然可以得到这个。您还可以轻松地将呈现的内容传输到 MSHTML.HTMLDocument 并使用该 DOM 解析器来完成。
  • 感谢有关 HTML 文档的建议。我会试试看。

标签: excel vba selenium-webdriver web-scraping xpath


【解决方案1】:

我也遇到了同样的问题,谁能解决这个问题?

/html/body/div[2]/div/div[4]/div[3]/div/div[3]/div[2]/div/div[2]/div[1]/div[3]/div[47]/div/div[4]/div/span[2]/text()[1]
/html/body/div[2]/div/div[4]/div[3]/div/div[3]/div[2]/div/div[2]/div[1]/div[3]/div[47]/div/div[4]/div/span[2]/text()[2]   
/html/body/div[2]/div/div[4]/div[3]/div/div[3]/div[2]/div/div[2]/div[1]/div[3]/div[47]/div/div[4]/div/span[2]/text()[3] 

所有 3 个文本在 span 标签中属于同一类。

<span class="_9s321"> "Stock List" "Price" "Change" </span>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-15
    • 1970-01-01
    • 2022-01-01
    • 2015-07-14
    • 2021-12-07
    • 2021-06-06
    • 2022-01-18
    相关资源
    最近更新 更多