如何使用PhantomJS编写文本的XPath查询

问题描述 投票:0回答:1

我试图抓取位于页面的<script>部分内的一些特定内容(在标签结尾之前的页面底部。我的理解是这不能用常规XPath完成,所以我将成为通过SEOTools for Excel插件使用PhantomJs云。

请参阅以下代码:

<script> window.__INITIAL_STATE__ = {"questions":{"list":{},"status":{}},"sites":{"list":{"SEOTest":{"joined":"2016-04-17T22:00:31.000Z","threshold":[],"abn":"8724483318952",

我希望能够在“ABN”字段后刮取文本,因此xpath将返回“8724483318952”。有谁知道如何用xpath做到这一点?

json xpath web-scraping phantomjs screen-scraping
1个回答
1
投票

要检索"8724483318952"的所需目标字符串值,可以使用以下XPath-1.0表达式:

substring-before(substring-after(script,'abn&quot;:'),',')

它从<script>标签中获取所需的字符串,其输出为

"8724483318952"


根据XPathUrl的说法,this link的签名是:

=XPathOnUrl(
   string url, 
   string xpath, 
   string attribute, 
   string xmlHttpSettings, 
   string mode
) : vector

所以整个表达式看起来像这样:

 =XPathOnUrl(A2,"substring-before(substring-after(//ul[@class='headshot']/script,'abn&quot;:'),',')")

我不确定这个表达式是否确实有效,但是它应该让你对如何处理XPath表达式有一个非常精确的想法。

© www.soinside.com 2019 - 2024. All rights reserved.