【发布时间】: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